我如何从Java中的另一个类获取变量?(How can I get a variable from another class in Java?)

系统教程 行业动态 更新时间:2024-06-14 17:02:17
我如何从Java中的另一个类获取变量?(How can I get a variable from another class in Java?)

我想获得类MainActivity类型中的id_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); } }

ListFood.java

public class ListFood extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.list_dish); LoadListFoodbyId(4); //use variable in here } public void LoadListFoodbyId(int i) { DataApdapter mDbHelper = new DataApdapter(this); mDbHelper.createDatabase(); mDbHelper.open(); ArrayList<Food> listFoodById = mDbHelper.getAllFoodById(i); listFoodAdapter = new ListFoodArrayAdapter(this, R.layout.list_dish, listFoodById); lv.setAdapter(listFoodAdapter); mDbHelper.close(); }

我试着在ListFood的mainActivity类中调用LoadListFoodbyId(int i)方法:

ListFood lf = new ListFood(); lf.LoadListFoodbyId (id_categories)

并尝试另一种方式是在类MainActivity中使用变量MainActivity在类ListFood中使用id_categories:

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

但都不成功。

I want to get the id_categories variable in class MainActivity types for use in methods LoadListFoodbyId (int id) in class ListFood.

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); } }

ListFood.java

public class ListFood extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.list_dish); LoadListFoodbyId(4); //use variable in here } public void LoadListFoodbyId(int i) { DataApdapter mDbHelper = new DataApdapter(this); mDbHelper.createDatabase(); mDbHelper.open(); ArrayList<Food> listFoodById = mDbHelper.getAllFoodById(i); listFoodAdapter = new ListFoodArrayAdapter(this, R.layout.list_dish, listFoodById); lv.setAdapter(listFoodAdapter); mDbHelper.close(); }

I tried calling the method LoadListFoodbyId (int i) in the class mainActivity by ListFood:

ListFood lf = new ListFood(); lf.LoadListFoodbyId (id_categories)

and try the other way is to take variables in class MainActivity id_categories used in class ListFood by MainActivity:

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

but all were unsuccessful.

最满意答案

您将其添加到意图。

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");

You add it to the intent.

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); Open it in the ListFood class, whenever you need it.

Bundle b = getIntent().getExtras(); int id_categories = bundle.getInt("id_categories");

更多推荐

本文发布于:2023-04-21 18:32:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/dzcp/cccc2851c4b7727e647119686d7b52f6.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:变量   Java   class   variable

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!