我有一个小问题,我已经解决了我的问题之前感谢亚历克斯马莫,现在我有另一个问题。
这里我附上我的firebase实时数据库截图
在我附加的ima中,te cart应该有一个子表引用表号,我从edittext sing gettext函数中得到一个表号,然后我将它发送到另一个活动,但是,当我将它发送到另一个活动并得到它时,它似乎没有得到任何值。我试着记录,但它没有显示任何东西,也试着打印,结果是一样的。我的问题是,如何以其他方式从edittext获取值?
这里我附加了gettext函数的代码
晚餐.java
EditText txtTable;
ArrayList<Menu> menuItems = new ArrayList<Menu>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dine_in);
txtTable = findViewById(R.id.txtTable);
String tables = txtTable.getText().toString();
Log.e("Nomormeja", tables);
这个cod是用来发送给另一个活动的
java(此代码是oncreate()方法之外的代码)
class CustomAdaptor extends BaseAdapter {
private Activity mContext;
private ArrayList<Menu> mItems;
public CustomAdaptor(Activity context, ArrayList<Menu> list) {
mContext = context;
mItems = list;
}
@Override
public int getCount() {
return menuItems.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = getLayoutInflater().inflate(R.layout.order_items, null);
TextView menuName = (TextView) convertView.findViewById(R.id.menuName);
TextView menuType = (TextView) convertView.findViewById(R.id.menuType);
TextView menuPrice = (TextView) convertView.findViewById(R.id.menuPrice);
ImageButton addcart = (ImageButton) convertView.findViewById(R.id.addBtn);
final String menuNames = menuItems.get(position).getMenuName();
final String tables = txtTable.getText().toString();
addcart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Like a Session variable ..it passes the dishName from the row that was clciked
SharedPreferences sharedPreferences=getSharedPreferences("shared preferences",MODE_PRIVATE);
SharedPreferences.Editor editor=sharedPreferences.edit();
editor.putString("menuNames",menuNames);
editor.putString("tables", tables);
editor.commit();
startActivity(new Intent(DineIn.this,ProductDetails.class));
}
});
这段代码是为了得到目标活动的值
产品.java
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_product_details);
txtNama = findViewById(R.id.tvNama);
txtQuantity = findViewById(R.id.tvQuantity);
btnMin = findViewById(R.id.btnMin);
btnPls = findViewById(R.id.btnPls);
btnAdd = findViewById(R.id.btnAdd);
SharedPreferences mPreferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences sharedPreferences=getSharedPreferences("shared preferences",MODE_PRIVATE);
menuName = sharedPreferences.getString("menuNames", ""); // taking dishname from menu when clicked a
tables = sharedPreferences.getString("tables", "");
Log.d("meja", tables);
Log.d("menu", menuName);
我把孩子的谷放在我的车入口
if(invalid==false){
writeNewEntry(tables, menuName, date, quantity);
finish();
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
});
}
private void writeNewEntry(String table, String name, String dates, int q){
Cart entry = new Cart(table, name, dates, q);
FirebaseDatabase.getInstance().getReference("Cart").child(tables).push().setValue(entry);
}
非常感谢你的帮助
1条答案
按热度按时间bfnvny8b1#
首先,您不应该通过sharedpreferences将内容传递给另一个活动。试着通过意图发送。。。发件人:
接收者(活动案例):