【问题标题】:Passing Data to listview from other activity using intent使用意图将数据从其他活动传递到列表视图
【发布时间】:2015-02-09 12:31:02
【问题描述】:

我的项目中有 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>

【问题讨论】:

    标签: android listview android-intent


    【解决方案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&lt;String&gt; 传递给您的适配器,而不是Integer.parseInt(det_rec)

    【讨论】:

    • 即使没有数据,我也无法打开列表视图。我在列表视图下方放置了按钮,但它们在 n 上方,lsitview 没有显示出来。我错过了什么……?
    • 阅读我为您发布的文档,您可以解决您的问题
    • 根据文档修改了代码但现在项目没有运行..“不幸的是项目停止了”.. sumthns 出错了:-(
    • 我不知道现在我如何运行我的项目,它正在被执行.. 但是我没有得到我在编辑文本中输入的数据,而是列表视图显示了行数,这是 for 循环的 bcoz .. n wen 我删除了 for 循环,我输入的文本正在显示,但是如果我第二次键入数据,则先前的数据将关闭 nm 能够 c 键入新的数据.. 我怎样才能让我的列表视图保留我的以前的数据也是..?
    • 请回复我需要帮助.. :-(
    猜你喜欢
    • 2012-11-12
    • 2015-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    相关资源
    最近更新 更多