ListActivity
에서 을 사용하여 데이터를 다른 ListActivity
으로 보내려고합니다. OnItemClickListener
에 SharedPreferences
으로 데이터를 추가했습니다. ArrayList
을 사용하여 ListActivity
다른 데이터를 채우는 방법을 모르겠습니다. 아래는 코드입니다.공유 환경 설정 데이터의 목록 항목 채우기
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);
}
});
제 시나리오는 응용 프로그램에서 두 가지 활동이 있습니다. 첫 번째 활동은 SharedPreferences
을 사용하여 ListActivity
을 실행합니다. 두 번째 활동은 코드로 작성된 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);
}
나는 당신의 마지막 문장을 이해하지 않습니다. getItem (position)이 반환하는 것을 직렬화하고 i.putExtra()를 수행하는 것이 어떻습니까? – Shellum
@ChuckNorris 나는 두 가지 다른 활동을 시작했기 때문에. 나는 다음 Intent에서 그 데이터를 사용하고 싶지 않다. 나는 다른 활동에서 전화해야 해. –