如何从 BaseAdapter Android 获取 activity 上的变量

How to get variable on activity from BaseAdapter Android

我有一个变量,bill_idMainActivity. 然后在 MainActivity 上,我也有 list view 类别,我把 onItemClick 放在 CategoryListAdapter. 上 在这里,当我单击类别时,我想重新加载 activity,即 new intent,并且还传递变量,我想传递 category_idbill_id(来自MainActivity)

如何从 BaseAdapter 中获取 bill_id 值?

这是我的片段:

final int category_id = listData.get(position).getID();
        final String category_name = listData.get(position).get_name();

        holder.btnCategory.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v){
                Log.d(TAG, "click category:"+category_id);
                Log.d(TAG, "category selected:"+category_name);

                // get cat id, reload with its id
                db = new DatabaseHelper(aContext);

                // bring variable id, to POS interface
                Intent intent = new Intent(aContext, MainActivity.class);
                intent.putExtra("category_id", category_id);
                v.getContext().startActivity(intent);
            }
        });

很简单。使用适配器的构造函数将值从 Activity 传递到适配器。这就是构造函数的用途。

喜欢你的activity,

MyAdapter myAdapter = new MyAdapter(variable1, variable2);

现在在您的适配器中,

private int variable1, variable2;

// Constructor
public MyAdapter(int var1, int var2){
    this.variable1 = var1;
    this.variable2 = var2;
}

您现在可以在点击监听器中轻松使用这些变量并将它们传递给新的意图。

您还可以在适配器中为这些变量使用设置器,例如,

public void setVariable1(int value){
    this.variable1 = value;
}

public void setVariable2(int value){
    this.variable2 = value;
}

并根据您的 activity,在需要时做这样的事情,

myAdapter.setVariable1(10);

因此,这些是您从适配器内部的 activity 访问变量的方法。