我有一个待办事项列表,当我选中该复选框时,我希望ListView中的项目转到应用程序中的另一个活动。这是我的适配器代码:
public class MyItemAdapter extends ArrayAdapter<String> {
private final Context context;
private final String[] values;
public MyItemAdapter(Context context, String[] values) {
super(context, R.layout.item_list, values);
this.context = context;
this.values = values;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.item_list, parent, false);
CheckBox textView = (CheckBox) rowView.findViewById(R.id.checkBox1);
textView.setText(values[position]);
return rowView;
}
public static SparseBooleanArray getCheckedItemPositions() {
// TODO Auto-generated method stub
return null;
}
public static void remove(Object pos) {
// TODO Auto-generated method stub
}
public void changeData(String[] items) {
// TODO Auto-generated method stub
}
public static void setAdapter(MyItemAdapter mAdapter) {
// TODO Auto-generated method stub
}
}
这是我到目前为止所做的代码:
check = (CheckBox) findViewById(R.id.checkBox1);
check.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
}
我应该为该项目添加什么代码以进行其他活动。
请帮助。
答案 0 :(得分:2)
您需要使用intent启动第二个活动,并使用putExtra将其他信息传递给新活动
Intent intent = new Intent(this, MyActivityClass.class);
intent.putExtra("checkbox_state", check.isChecked());
startActivity(intent);
在您的第二个活动中,您通过获取意图并剥离其他信息来获得此值
Intent intent = this.getIntent();
checked = intent.getBooleanExtra(EXTRA_IS_BUILTIN);
答案 1 :(得分:0)
通过Intent
发送复选框的布尔值。您可以使用Intent上的putExtras()方法:
intent.putExtra("checkboxValue", isChecked);
答案 2 :(得分:0)
Intent i = new Intent(this, newActivity.class);
Bundle b = new Bundle();
b.putString("checked", isChecked);
i.putExtras(b);
startActivity(i);
您应该使用一个包,以便在方向更改后重新加载Activity时,也可以使用它来检查savedInstanceState。使用三元运算符检查savedInstanceState或使用Bundle
答案 3 :(得分:0)
我对你的问题感到有些困惑。
您的标题显示:向另一个活动发送复选框
答案:然后你可以按照这里给出的所有答案而忽略我的答案。
但是你的身体部分说了一些其他的东西:
选中复选框后,我希望ListView中的项目转到应用程序中的另一个活动
为此,您必须在其他答案中稍微修改一下,并在选中复选框时发送列表视图的所选项目。类似的东西:
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
String mData = your_list.getItemAtPosition(position); //Or you can use getSelectedItem()
Intent intent = new Intent(context, other_activity.class);
intent.putExtra("ListView Item", mData );
startActivity(intent);
}
如果在另一项活动中获取数据,请按照Merlevede的说法进行操作。