Reputation: 107
I am now trying to send data from ListActivity
to another ListActivity
by using SharedPreferences
. I added data in OnItemClickListener
with SharedPreferences
. I have no idea how to populate data in another ListActivity
using ArrayList
. Below is the codes.
convertView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
SharedPreferences pref = getContext().getSharedPreferences(
Constants.SHARED_PRED, 0);
Editor edit = pref.edit();
edit.putString("TITLE", getItem(position).title);
edit.putString("CHAR", getItem(position).character);
edit.putString("TOTAL", getItem(position).totalpages+"");
edit.putString("THUMB", getItem(position).thumbnail);
edit.putInt("CODE", getItem(position).code);
edit.commit();
System.out.println("Title >>>>>>" + getItem(position).title);
System.out.println("Character >>>>>>" + getItem(position).character);
System.out.println("Total >>>>>>" + getItem(position).totalpages);
System.out.println("thumb url >>>>>>" + getItem(position).thumbnail);
System.out.println("Code >>>>>>" + getItem(position).code);
Intent i = new Intent(getContext(), DetailPager.class);
i.putExtra("NPOS", position);
getContext().startActivity(i);
}
});
My scenario is that i have two activity in my application. First Activity will launch ListActivity
by using SharedPreferences
. Second Activity will load DetailPager.class
which is written in codes. My problem is that i don't know how to populate ListActivity
which is not launch in OnClick
event.
My ListActivity Class
private ListViewAdapter m_adapter;
public ArrayList<String> cat = new ArrayList<String>();
private SharedPreferences preferences;
private SharedPreferences.Editor editor;
String title, character, thumbnail, totalPages;
int Code;
TextView titleView, charView, totalView;
ImageView thumbView, removeView;
Uri thumbUri;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(android.R.style.Theme_Black_NoTitleBar);
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.myputet);
init_UI();
}
public void init_UI() {
preferences = getApplicationContext().getSharedPreferences(
Constants.SHARED_PRED, 0);
editor = preferences.edit();
title = preferences.getString("TITLE", "");
character = preferences.getString("CHAR", "");
thumbnail = preferences.getString("THUMB", "");
thumbUri = Uri.parse(thumbnail);
totalPages = preferences.getString("TOTAL", "");
Code = preferences.getInt("CODE", 0);
System.out.println("Getting Title " + title);
System.out.println("Getting character " + character);
System.out.println("Getting thumbnail " + thumbnail);
System.out.println("Getting thumbUri " + thumbUri);
System.out.println("Getting totalPages " + totalPages);
ListView lv = (ListView) findViewById(R.id.listview);
m_adapter = new ListViewAdapter(this, R.layout.myputet_item, cat);
lv.setAdapter(m_adapter);
}
private class ListViewAdapter extends ArrayAdapter<String> {
private ArrayList<String> items;
public ListViewAdapter(Context context, int textViewResourceId,
ArrayList<String> items) {
super(context, textViewResourceId, items);
this.items = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.myputet_item, null);
}
String info = items.get(position);
if (info != null) {
titleView = (TextView) v.findViewById(R.id.titleTxtView);
charView = (TextView) v.findViewById(R.id.charTxtView);
totalView = (TextView) v.findViewById(R.id.totalTxtView);
thumbView = (ImageView) v.findViewById(R.id.charImageView);
removeView = (ImageView) v.findViewById(R.id.removeListItem);
titleView.setText(title);
charView.setText(character);
totalView.setText(totalPages);
thumbView.setImageURI(thumbUri);
}
return v;
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
Upvotes: 1
Views: 1083
Reputation: 134664
Um, well don't do it that way for sure. Instead of throwing it all in SharedPreferences
, pass those pieces in via your Intent
. For example, instead of:
edit.putString("TITLE", getItem(position).title);
you can use
i.putExtra("TITLE", getItem(position).title);
Then, in your onCreate()
of your detail activity, use:
Intent passedIntent = getIntent();
String title = passedIntent.getStringExtra("TITLE");
Upvotes: 2