use*_*039 2 checkbox android baseadapter
我的自定义基本适配器中有此代码.我在列表视图中的每一行上都有一个复选框,工作正常,我将它们与我的数据库链接.但是,当勾选复选框时,我想更新主要活动中的textview的内容,该自定义基本适配器是从该活动开始的.
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{
}
}
});
Run Code Online (Sandbox Code Playgroud)
这是勾选复选框时我想要调用的函数,也是您在上面看到的自定义基本适配器开始的位置.
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));
}
Run Code Online (Sandbox Code Playgroud)
您可以getInstance
在您创建方法activity
然后通过它调用方法,如下所示:
class MainActivity extends Activity{
private static MainActivity sMainActivity;
@override
private void onCreate(Bundle bundle){
sMainActivity = this;
Run Code Online (Sandbox Code Playgroud)
并创建get方法
public static MainActivity getInstance() {
return sMainActivity;
}
Run Code Online (Sandbox Code Playgroud)
然后在你的adapter
电话中以下一行:
MainActivity.getInstance().fillData();
Run Code Online (Sandbox Code Playgroud)
注意:确保activity
当前打开以避免任何操作NullPointerExceptions
归档时间: |
|
查看次数: |
4106 次 |
最近记录: |