【发布时间】:2019-10-24 00:19:43
【问题描述】:
我有三个活动。
我想将点击数据从第一个活动传递到第三个活动。
第一次(点击)>第二次(点击)>第三次
我的问题是:SwipeNavAdapter内
String data1 = sharedPreferences.getString(ListNavAdapter.ID_EXTRA, "") 没有显示来自ListNavAdapter 的列表,但它显示了来自CourseAdapter 的列表。我想从SwipeNavAdapter 中的ListNavAdapter 中获取点击列表项。
FIRST : ListNavAdapter
SQLiteDatabase sqLiteDatabase = SqliteDatabase.getInstance(this.getContext()).getWritableDatabase();
Cursor cursor = sqLiteDatabase.rawQuery("SELECT CHAPTER FROM BOOK GROUP BY CHAPTER order by _id", new String[]{});
if (cursor.getCount() == 0) {
//
} else {
while (cursor.moveToNext()) {
listItem.add(cursor.getString(0));
}
arrayAdapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, listItem);
listView.setAdapter(arrayAdapter);
}
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
String achal=(String)adapterView.getItemAtPosition(i);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(ID_EXTRA, achal);
editor.apply();
Intent intent=new Intent(getActivity(), Course.class);
intent.putExtra(ID_EXTRA, String.valueOf(l));
startActivity(intent);
}
});
第二个:课程适配器
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
String data = sharedPreferences.getString(ListNavAdapter.ID_EXTRA, "") ;
SQLiteDatabase sqLiteDatabase = SqliteDatabase.getInstance(this.getContext()).getWritableDatabase();
Cursor cursor = sqLiteDatabase.rawQuery("SELECT TEXT_NO FROM BOOK WHERE CHAPTER='" + data + "' ORDER BY _id", new String[]{});
if (cursor.getCount() == 0) {
//
} else {
while (cursor.moveToNext()) {
listItem.add(cursor.getString(0));
}
arrayAdapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, listItem);
listView.setAdapter(arrayAdapter);
}
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
String achal1=(String)adapterView.getItemAtPosition(i);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(ID_EXTRAA, achal1);
editor.apply();
Intent intent=new Intent(getActivity(), SwipeNav.class);
intent.putExtra(ID_EXTRAA, String.valueOf(l));
startActivity(intent);
}
});
第三个:SwipeNavAdapter
@Override
public Fragment getItem(int i) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
String data1 = sharedPreferences.getString(ListNavAdapter.ID_EXTRA, "") ;
System.out.println(data1);
ArrayList<String> listItem1 = new ArrayList<String>();
Cursor cursor1 = sqLiteDatabase.rawQuery("SELECT TEXT FROM BOOK WHERE CHAPTER='" + data1 + "'", new String[]{});
if (cursor1.getCount() == 0) {
///
} else {
while (cursor1.moveToNext()) {
listItem1.add(cursor1.getString(0));
}
}
Object[] mStringArray1 = listItem1.toArray();
Fragment fragment = new AFragment();
Bundle args = new Bundle();
assert mStringArray1 != null;
args.putString(AFragment.ARG_OBJECT1, (String)mStringArray1[i]);
fragment.setArguments(args);
return fragment;
}
@Override
public int getCount() {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
String data1 = sharedPreferences.getString(ListNavAdapter.ID_EXTRA, "") ;
SQLiteDatabase sqLiteDatabase = SqliteDatabase.getInstance(context).getWritableDatabase();
ArrayList<String> listItem = new ArrayList<>();
Cursor cursor = sqLiteDatabase.rawQuery("SELECT TEXT FROM BOOK WHERE CHAPTER='" + data1 + "'", new String[]{});
while (cursor.moveToNext()) {
listItem.add(cursor.getString(cursor.getColumnIndex("TEXT")));
}
return listItem.size();
}
【问题讨论】:
-
@Naitik Soni,在 Course Adapter ID_EXTRA 中显示来自 ListNavAdapter 的正确数据,在 SwipeNavAdapter 中,ID_EXTRAA 显示来自 CourseAdapter 的正确数据。但是当我尝试在 SwipeNavAdapter 中获取 ID_EXTRA 时,它显示 ID_EXTRAA 的数据意味着来自 CourseAdapter 的数据不是来自 ListNavAdapter
标签: java android listview sharedpreferences