使用intent将数据传递到另一个活动的listview

时间:2015-02-09 12:31:02

标签: android listview android-intent

我的项目中有2个活动,其中第一个活动有一个列表视图和一个按钮,第二个活动有EditText和其他信息以及Button。我想在用户输入第一个活动ListView的详细信息时从第二个活动传递数据。在我输入数据时,它不会显示在ListView中..问题是什么?

主要活动: -

   @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    ListView lv = (ListView) findViewById(R.id.theListView);

   if(requestCode==1) {
       if (resultCode == RESULT_OK) {

           String det_rec = data.getStringExtra("Details");
           ArrayList<String> strArr = new ArrayList<String>();
           for(int i=0;i<det_rec.length();i++) {
               strArr.add("Row :" + i);
           }
           ListAdapter adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, strArr);
           lv.setAdapter(adapter);

       }
       if (resultCode == RESULT_CANCELED) {
           return;
       }
   }

      // ListView lv = (ListView) findViewById(R.id.theListView);
      // String det_rec = data.getStringExtra("Details");
       // ArrayList<String> strArr = new ArrayList<String>();
       // for(int i=0;i<det_rec.length();i++){
       // strArr.add("Row :"+i);
  //}
    //ListAdapter adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, strArr);
   // lv.setAdapter(adapter);
}

}

第二项活动: -

   public void add_usr_tsk_btn(View view){
    EditText et = (EditText)findViewById(R.id.task_name_edit_txt);
    String detls = String.valueOf(et.getText());
    Intent goback = getIntent();
    goback.putExtra("Details",detls);
    setResult(RESULT_OK,goback);
    finish();
}

public void cancl_btn(View view) {
    Intent goBack = getIntent();
    finish();
}

}

活动主要: -

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="left"
tools:context=".MainActivity">

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_weight="1">

    <ListView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/theListView">

    </ListView>

</LinearLayout>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Add Task"
        android:id="@+id/button1"
        android:background="@drawable/addtask"
        android:onClick="onAddCLick"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true"/>

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/shwmap"
        android:text="Show Map"
        android:id="@+id/button2"
        android:onClick="onMapbtnClck"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Settings"
        android:id="@+id/button3"
        android:onClick="onSetngClck"
         />
</LinearLayout>

第二项活动: -

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="left">

<EditText
    android:layout_width="364dp"
    android:layout_height="wrap_content"
    android:id="@+id/task_name_edit_txt"
    android:hint="Enter your Details" />

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

<TextView
    android:layout_width="250dp"
    android:layout_height="wrap_content"
    android:text="Set Location"
    android:id="@+id/textView" />
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/Set_loc_btn"
    android:onClick="set_usr_loc"/>

</LinearLayout>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/Add_task_btn"
        android:onClick="add_usr_tsk_btn"
        android:id="@+id/add_task"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/cancel_btn"
        android:onClick="cancl_btn"
        android:id="@+id/cancel_btn"/>
    </LinearLayout>
</LinearLayout>

1 个答案:

答案 0 :(得分:1)

您使用以下代码传递数据:

goback.putExtra("Details",detls);

你可以使用以下代码:

String det_rec = data.getStringExtra("details");

如您所见Detailsdetails不同,请更改其中一个,

当您使用onActivityResult时,您必须检查requestCoderesultCode,要使用该字段,您可以阅读 This

我认为你需要阅读创建列表教程,你可以从This开始,因为我的这个实现根本不起作用:

ListAdapter adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, Integer.parseInt(det_rec));

您必须将ArrayList和代码中的ArrayList<String>传递给适配器,而不是Integer.parseInt(det_rec)