无法从edittext获取值

7hiiyaii  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(350)

我有一个小问题,我已经解决了我的问题之前感谢亚历克斯马莫,现在我有另一个问题。
这里我附上我的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);
    }

非常感谢你的帮助

bfnvny8b

bfnvny8b1#

首先,您不应该通过sharedpreferences将内容传递给另一个活动。试着通过意图发送。。。发件人:

Intent intent = new Intent(DineIn.this,ProductDetails.class);
intent.putExtra("tables", tables);
startActivity(intent)

接收者(活动案例):

Intent intent = getIntent();
tables = intent.getStringExtra("tables", "");

相关问题