2017-02-14 107 views
3

我是个变量,bill_idMainActivity. 然后在MainActivity得到活动的变量,我也有list view类,我把onItemClickCategoryListAdapter. 在这里,当我点击的类别,我想重新加载活动,这是new intent,也传递变量,我想通过category_idbill_id(这是从MainActivity如何从BaseAdapter的Android有

我怎样才能从BaseAdapterbill_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); 
      } 
     }); 
+0

即时通讯新的Android编程,我不明白如何使意图可以让我访问变量? – Gabriel

回答

4

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

就像在你的活动,

MyAdapter myAdapter = new MyAdapter(variable1, variable2); 

现在,在您的适配器,

private int variable1, variable2; 

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

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

您还可以使用setter方法在适配器这样的变量,

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

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

从你的活动,这样做需要的时候,

myAdapter.setVariable1(10); 

所以,这些都为途径你可以从你的适配器内的活动访问你的变量。

+0

谢谢! @AritraRoy。解决方案就像一个魅力! – Gabriel

相关问题