I have a navigtion drawer by default on create my home fragment launches. Now from my mainactivity I go to next activity where I perform some operations and get back to mainactivity using onActivityResult.
Upto here everything works fine. Here comes my problem.
I have a listview in my HomeFragment so in the onActivityResult I get the values which are performed in other activity. Now how do I pass these values to my home fragment.
This is how I launch a new activity from mainactivity:
Intent i = new Intent(MainActivity.this, AddTask.class);
startActivityForResult(i,1);
Now In the AddTask I perform some operations and send back to main activity as shown:
Intent i = new Intent(AddTask.this,MainActivity.class);
setResult(RESULT_OK, i);
finish();
Now In my MainActivity onActivityResult:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == RESULT_OK){
AddedTask = data.getStringExtra("NewTask");
CategoryName= data.getStringExtra("CategoryItem");
TaskTime=data.getStringExtra("TaskTime");
SharedPreferences settings = getSharedPreferences("taskdetails",
Context.MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.putString("NewTask", AddedTask);
editor.putString("CategoryItem", CategoryName);
editor.putString("TaskTime", TaskTime);
editor.commit();
}
if (resultCode == RESULT_CANCELED) {
//Write your code if there's no result
}
}
}
Now I have a listView in my HomeFragment where I need to update with these values:
public class HomeFragment extends Fragment {
ListView lv;
static final String TAG ="HomeFragment";
private AdapterListViewData adapterListViewData;
private ArrayList<DataShow> listData = new ArrayList<DataShow>();
private ListView listViewData;
String CategoryName,TaskTime;
String AddedTask;
public HomeFragment(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_home, container, false);
listViewData = (ListView)rootView.findViewById(R.id.listViewData);
SharedPreferences settings = this.getActivity().getSharedPreferences("taskdetails",
Context.MODE_PRIVATE);
AddedTask = settings.getString("NewTask",null);
CategoryName= settings.getString("CategoryItem",null);
TaskTime=settings.getString("TaskTime",null);
listData.add(new DataShow(AddedTask,CategoryName,TaskTime));
adapterListViewData = new AdapterListViewData(getActivity().getBaseContext(),listData);
adapterListViewData.notifyDataSetChanged();
return rootView;
}
}
I'm not getting any error and the listview is not shown. Kindly advise me.