我现在正尝试使用ListActivity
将数据从ListActivity
发送到另一个SharedPreferences
。我在OnItemClickListener
中添加了SharedPreferences
的数据。我不知道如何使用ListActivity
在另一个ArrayList
中填充数据。以下是代码。
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);
}
});
我的情况是我的应用程序中有两个活动。第一个活动将使用ListActivity
启动SharedPreferences
。第二个活动将加载DetailPager.class
,这是用代码编写的。我的问题是我不知道如何填充ListActivity
事件中没有启动的OnClick
。
我的ListActivity类
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);
}
答案 0 :(得分:2)
SharedPreferences
中,而是通过Intent
传递这些内容。例如,而不是:
edit.putString("TITLE", getItem(position).title);
你可以使用
i.putExtra("TITLE", getItem(position).title);
然后,在您的详细活动onCreate()
中,使用:
Intent passedIntent = getIntent();
String title = passedIntent.getStringExtra("TITLE");