【问题标题】:How to get variable on activity from BaseAdapter Android如何从 BaseAdapter Android 获取活动变量
【发布时间】:2017-02-14 07:30:18
【问题描述】:

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

如何从BaseAdapter 获取bill_id 值?

这里是我的 sn-p:

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

【问题讨论】:

  • 我是 android 编程新手,我不明白如何让意图让我访问变量?

标签: android listview baseadapter


【解决方案1】:

这很简单。使用适配器的构造函数将值从您的活动传递给适配器。这就是构造函数的用途。

就像在你的活动中一样,

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

根据你的活动,在需要时做这样的事情,

myAdapter.setVariable1(10);

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

【讨论】:

  • 谢谢! @AritraRoy。解决方案就像一个魅力!
猜你喜欢
  • 1970-01-01
  • 2015-02-16
  • 2012-10-15
  • 1970-01-01
  • 1970-01-01
  • 2023-01-04
  • 1970-01-01
  • 2017-03-20
  • 1970-01-01
相关资源
最近更新 更多