gpt4 book ai didi

android - 如何从自定义基础适配器调用函数

转载 作者:太空狗 更新时间:2023-10-29 16:03:39 26 4
gpt4 key购买 nike

我的自定义基础适配器中有这段代码。我在 ListView 中的每一行都有一个复选框,它们工作正常并且我将它们与我的数据库链接。但是,当勾选复选框时,我想更新 TextView 的内容,该 TextView 位于此自定义基本适配器启动的主要 Activity 中。

 public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;

if (convertView == null) {
convertView = mInflater.inflate(R.layout.custom_row_view, null);
holder = new ViewHolder();

holder.bought = (CheckBox) convertView.findViewById(R.id.checkbox_bought);

convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}


holder.bought.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(((CheckBox)v).isChecked()){
//update textview in activity
}else{

}
}
});

这是勾选复选框时我想调用的函数,这也是您看到上面显示的自定义基础适配器开始的地方。

  private void fillData() {
db.updateTag(tag);

totalCostView.setText(String.valueOf(tag.cost));
listOfTodos = db.getAllToDosByTag(nameOfList);

final ListView lv1 = (ListView) findViewById(R.id.listItems);
lv1.setAdapter(new MyCustomBaseAdapter(this, list, tag));

}

最佳答案

您可以在activity 中创建getInstance 方法,然后通过它调用该方法,如下所示:

class MainActivity extends Activity{
private static MainActivity sMainActivity;

@override
private void onCreate(Bundle bundle){
sMainActivity = this;

并创建get方法

public static MainActivity getInstance() {
return sMainActivity;
}

然后在您的适配器中调用以下行:

MainActivity.getInstance().fillData();

注意:确保 activity 当前打开以避免任何 NullPointerExceptions

关于android - 如何从自定义基础适配器调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22443696/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com