发送复选框到另一个活动

时间:2014-02-18 15:26:01

标签: java android eclipse android-listview android-checkbox

我有一个待办事项列表,当我选中该复选框时,我希望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){

            }

我应该为该项目添加什么代码以进行其他活动。

请帮助。

4 个答案:

答案 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的说法进行操作。