Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在下一个活动的复选框上显示所选项目_Android_Eclipse_Listview_Checkbox - Fatal编程技术网

Android 在下一个活动的复选框上显示所选项目

Android 在下一个活动的复选框上显示所选项目,android,eclipse,listview,checkbox,Android,Eclipse,Listview,Checkbox,我有一个使用复选框的列表视图和同一布局上的提交按钮 现在我只能点击复选框,它什么也不做。我读了很多关于展示物品的教程,但大多数都是作为祝酒词发布的我想要的是,当我单击“提交”按钮时,项目将显示在新活动中。 这是CheckBoxListAdapter的代码: public class CheckboxListAdapter extends BaseAdapter implements OnClickListener { private LayoutInflater inflator; priv

我有一个使用复选框的列表视图和同一布局上的提交按钮

现在我只能点击复选框,它什么也不做。我读了很多关于展示物品的教程,但大多数都是作为祝酒词发布的我想要的是,当我单击“提交”按钮时,项目将显示在新活动中。

这是CheckBoxListAdapter的代码:

public class CheckboxListAdapter extends BaseAdapter implements OnClickListener {

private LayoutInflater inflator;

private List<SampleData> dataList;

public CheckboxListAdapter(LayoutInflater inflator) {
    super();
    this.inflator = inflator;

    dataList = new ArrayList<SampleData>();

    dataList.add(new SampleData("Teh Ais (130 cal)", false));
    dataList.add(new SampleData("Teh O Ais (130 cal)", false));
    dataList.add(new SampleData("Neslo Ais (170 cal)", false));
    dataList.add(new SampleData("Kopi Ais (130 cal)", false));
    dataList.add(new SampleData("Kopi O Ais (130 cal)", false));
    dataList.add(new SampleData("Jus buah (130 cal)", false));
    dataList.add(new SampleData("Limau ais (40 cal)", false));
    dataList.add(new SampleData("Air berkarbonat (120 cal)", false));

}

@Override
public int getCount() {
    return dataList.size();
}

@Override
public Object getItem(int position) {
    return dataList.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View view, ViewGroup viewGroup) {

    if (view == null) {
        view = inflator.inflate(R.layout.element_example, null);

        view.findViewById(R.id.checkBox1).setOnClickListener(this);
    }

    SampleData data = (SampleData) getItem(position);

    CheckBox cb = (CheckBox) view.findViewById(R.id.checkBox1);
    cb.setChecked(data.isSelected());
    cb.setTag(data);

    TextView tv = (TextView) view.findViewById(R.id.textView1);
    tv.setText(data.getName());

    return view;
}

@Override
public void onClick(View view) {
    SampleData data = (SampleData) view.getTag();
    data.setSelected(((CheckBox) view).isChecked());
}

}
SampleData.java

public class SampleData {

private String name;

private boolean selected;

public SampleData(String name, boolean selected) {
    super();
    this.name = name;
    this.selected = selected;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public boolean isSelected() {
    return selected;
}

public void setSelected(boolean selected) {
    this.selected = selected;
}

}
listview的第一个XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<ListView
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="389dp"
    android:layout_weight="0.79" >
</ListView>

<Button
    android:id="@+id/btn_submit"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/btn_submit" />

</LinearLayout>

复选框的第二个XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:padding="5dp" >



<TextView
    android:id="@+id/textView1"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1" />

<CheckBox
    android:id="@+id/checkBox1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

</LinearLayout>

在开始下一个活动时,将所选项目传递给意图对象。在下一个活动中从意图中检索所选项目并使用它

范例

Intent intent = new Intent(getBaseContext(), NextActivity.class);
intent.putExtra("Selected_Item", selectedItemData);
startActivity(intent)
在下一个活动中,请执行以下操作

Intent intent = getIntent();
String selectedItem = intent.getStringExtra("Selected_Item")

你能详细解释一下吗?很抱歉,如果我听起来很笨,我在过去15小时内已经检查了很多代码。请在当前活动中获取所选值。当您准备好开始下一个活动时,使用所选值的意图和额外数据开始该活动。当下一个活动开始时,在onCreate中检索我从意图中显示的所选值。我以前使用过intent,但它是用于EditText和TextView的。由于按钮将放在CheckboxListActivity中,因此其目的将在按钮的onclick方法下,但参考我的代码,选定的_项指的是SampleData?SampleData只是一个字符串和一个布尔值。使用上面的代码,您可以存储字符串并将其发送到下一个活动。从那以后,要想知道如何发送布尔值也不难。然后可以在新活动中重建对象。
Intent intent = getIntent();
String selectedItem = intent.getStringExtra("Selected_Item")