Android listview item edit operation

我的未来我决定 提交于 2020-01-17 09:12:55

问题


I am new at developing Android App.I have a MainActivity that has a ListView.The data on Listview is hold in a Arraylist.(I dont have any DB).Listview items has 4 field such as coursecode,coursetitle,courselevel,coursedescription.When I clicked an item on Listview,a new activity(ShowDetailActivity) will be launced in order to view detail of course.The editable of the EditViews on ShowDetailActivity are false.On ShowDetailActivity I have an option menu item (Edit).When I clicked the Edit option menu item,a new activity(EditCourseDetailActivity) will be launched and the the user will be edit details of course.

Edited detail of the specific course on EditCourseDetailActivity must be transfer to ShowDetailActivity and then to MainActivity

I dont know I could explain?

How can I handle this situation please help me !!!! Thanks for your comment in advanced

MainActivity ---> ShowDetailActivity ---> EditCourseDetailActivity ---- | | MainActivity <----ShowDetailActivity <---------------------------------


回答1:


For ListView (MainActivity), you can do setOnItemClickListener. For example:

MainActivity.java

ListView list = (ListView) findViewById(R.id.yourlistview);
list.setOnItemClickListener(new AdapterView.onItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> adapter, View view, int position, long id) {
      // use position to find your values
      // to go to ShowDetailsActivity, you have to use Intent
      Intent detailScreen = new Intent(getApplicationContext(), ShowDetailActivity.class);
      detailScreen.putExtra("position", position); // pass value if needed
      detailScreen.putExtra("para2", para2);
      startActivity(detailScreen);
   } 
});

DetailScreen.java

This is how you receive from MainActivity.

Intent i = getIntent();
int position = i.getIntExtra("position", 0);

Then when Edit button is clicked, use the intent to go to next activity (EditCourseDetails).




回答2:


Look at this topic. It is similar to your situation.

In you case, the idea is to send the data throught the Intent to your different activities. The modified data will be send back to the activity by the same process.

I believe that your object in the ArrayList must be Serializable.

You will find explainations in these links:

  • http://androidideasblog.blogspot.in/2010/02/passing-list-of-objects-between.html
  • http://www.anddev.org/novice-tutorials-f8/simple-tutorial-passing-arraylist-across-activities-t9996.html

P.S.: Use the startActivityForResult and onActivityResult to get the Intent as explained by tiago7



来源:https://stackoverflow.com/questions/27173535/android-listview-item-edit-operation

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!