问题
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