简体   繁体   English

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

[英]How can I get a variable from another class in Java?

I want to get the id_categories variable in class MainActivity types for use in methods LoadListFoodbyId ( int id ) in class ListFood. 我想在类MainActivity类型中获取id_categories变量,以便在类ListFood中的方法LoadListFoodbyId( int id )中使用。

MainActivity.java 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 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在类mainActivity中调用方法LoadListFoodbyId(int i):

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类ListFood中使用的类MainActivity id_categories中获取变量:

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

but all were unsuccessful. 但都没有成功。

  1. 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); 
    1. Open it in the ListFood class, whenever you need it. 无论何时需要,都可以在ListFood类中打开它。

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

In your MainActivity class define the variable id_categories example: 在您的MainActivity类中定义变量id_categories示例:

public class MainActivity {

 private int id_categories;
  ...

change this line code 更改此行代码

 int id_categories = item.getId();

in

 id_categories = item.getId();

and create a function in class MainActivity 并在类MainActivity中创建一个函数

public int getIdcategories(){
    return id_categories;
}

put it in an intent in your main activity, like this 把它放在主要活动的意图中,就像这样

itent.putExtra("id", item.getId());

and retrieve it in list food like this 并在列表食物中检索它像这样

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

Declare id_categories as public static int id_categories in MainActivity before onCreate. 声明id_categories作为public static int id_categoriesMainActivity的onCreate之前。 Then you can access it in any class as MainActivity.id_categories . 然后,您可以在任何类中访问它作为MainActivity.id_categories

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何从另一个 class I Java 访问变量 - How can I acces variable from another class I Java 如何使用Java中另一个类的变量 - How can I use a variable from another class in Java 如何从java类获取可变数据到javascript? - how can i get variable data from java class to javascript? Java-如何获取从一个类中的方法生成到另一个类中的变量? - Java - How do I get a variable generated from within a method in one class to another class? 如何使用类运行器中的变量在另一个类的方法中使用? (BlueJ,Java) - How can I use a Variable from a Class Runner to use in a Method in another Class? (BlueJ, Java) Java - 我可以将变量修改从一个类转换为另一个类吗? - Java - Can I cast a variable modification from one class to another? 如何获得一个类,以从位于另一个类中的对象的数组列表中打印出字符串变量? - How can I get a class to print out a string variable from an arraylist of objects located in another class? 如何从一个类到另一个类调用变量? - How can I call a variable from a class to another class? 如何访问局部变量,该局部变量是另一个类中的对象? -Java - How can I access a Local Variable which is an object from within another class? - Java 如何在Android studio java的textview中显示另一个类的变量? - How can I show a variable from another class in a textview in Android studio java?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM