作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我的自定义基础适配器中有这段代码。我在 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/
我是一名优秀的程序员,十分优秀!