如何从Java中的另一个类获取变量?

如何从Java中的另一个类获取变量?,java,android,Java,Android,我想获取类main活动类型中的id\u categories变量,以便在类ListFood中的LoadListFoodbyId(int id)方法中使用 MainActivity.java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_mai

我想获取类main活动类型中的id\u categories变量,以便在类ListFood中的LoadListFoodbyId(int id)方法中使用

MainActivity.java

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv = (ListView) findViewById(R.id.list_store_View);
        LoadCategories();
        lv.setOnItemClickListener(new CategoriesClickListener());
}
    // The click listener for ListView in Store List
    private class CategoriesClickListener implements
            ListView.OnItemClickListener {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {

            Categories item = cateAdapter.getItem(position);
            Intent itent = new Intent(getApplicationContext(), ListFood.class);
            itent.putExtra("item", item);
            int id_categories = item.getId(); //i want to get this variable
            String log = "ID: " + id_categories;
            startActivity(itent);
            Log.d("ID: ", log);

        }
    }
另一种方法是获取MainActivity在类ListFood中使用的类MainActivity id_类别中的变量:

MainActivity main = new MainActivity(); 
LoadListFoodbyId (main.getId ()), 

但是都没有成功。

在MainActivity类中定义变量id\u类别示例:

public class MainActivity {

 private int id_categories;
  ...
更改此行代码

 int id_categories = item.getId();

并在MainActivity类中创建一个函数

public int getIdcategories(){
    return id_categories;
}
  • 你把它添加到意图中

    Categories item = cateAdapter.getItem(position);
    Intent itent = new Intent(getApplicationContext(), ListFood.class);
    itent.putExtra("item", item);
    int id_categories = item.getId(); //i want to get this variable
    String log = "ID: " + id_categories;
    itent.putExtra("id_categories", id_categories) //you can call your variable whatever you want, I have called it "id_categories" for convenience.
    startActivity(itent);
    Log.d("ID: ", log);
    
  • 在ListFood类中随时打开它
    Bundle b=getIntent().getExtras();
    int id_categories=bundle.getInt(“id_categories”)


  • 把它放在你的主要活动中,像这样

    itent.putExtra("id", item.getId());
    
    int id=getIntent().getIntExtra("id",0); // 0 is default value if id is not found in intent
    
    然后像这样在食物列表中检索它

    itent.putExtra("id", item.getId());
    
    int id=getIntent().getIntExtra("id",0); // 0 is default value if id is not found in intent
    

    在创建之前,在
    main活动
    中将
    id\u类别
    声明为
    public static int id\u类别
    。然后,您可以在任何类中以
    MainActivity.id\u categories

    MainActivity main=new()的形式访问它
    LoadListFoodbyId(main.getId())
    ,你确定你在写Java吗?用
    意图附加发送它
    永远不要手动实例化活动,使用附加绑定只看到剪切和粘贴的错误我更正了它谢谢'sHow我可以在类ListFood中使用getIdcategories()吗?我尝试了MainActivity main=newmainActivity();LoadListFoodbyId(main.getId())结果始终为零。ListFood lf=new ListFood();lf.LoadListFoodbyId(.getIdcategories());
    int id=getIntent().getIntExtra("id",0); // 0 is default value if id is not found in intent