I have a table like below. My problem is : in the list view shows three list
Letter
Number
Word
But when I click on the any list item, view pager swipe views shows but remains blank, no data there. and also no page title shows. In the Logcat no error shows.
This is ListNavAdapter
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ArrayAdapter arrayAdapter;
ArrayList<String> listItem = new ArrayList<>();
final ListView listView = (ListView) view.findViewById(R.id.list);
SQLiteDatabase sqLiteDatabase = SqliteDatabase.getInstance(this.getContext()).getWritableDatabase();
Cursor cursor = sqLiteDatabase.rawQuery("SELECT HEADER FROM MyData group by HEADER", new String[]{});
if (cursor.getCount() == 0) {
Toast.makeText(getActivity(), "No Data to show", Toast.LENGTH_LONG).show();
} 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) {
Intent intent=new Intent(getActivity(), SwipeNav.class);
intent.putExtra(ID_EXTRA, (String)adapterView.getItemAtPosition(i));
startActivity(intent);
}
});
This is SwipeNav activity
if (getIntent().hasExtra(ListNavAdapter.ID_EXTRA)) {
String myInt = (getIntent().getStringExtra(ListNavAdapter.ID_EXTRA));
listSwipePagerAdapter = new ListSwipePagerAdapter(getSupportFragmentManager(), this);
viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setAdapter(listSwipePagerAdapter);
This is from ListSwipePagerAdapter
public Fragment getItem(int i) {
String myInt=ListNavAdapter.ID_EXTRA;
ArrayList<String> listItem = new ArrayList<String>();
SQLiteDatabase sqLiteDatabase = SqliteDatabase.getInstance(context).getWritableDatabase();
Cursor cursor = sqLiteDatabase.rawQuery("SELECT NAME FROM MyData WHERE HEADER=?", new String[]{"myInt"});
if (cursor.getCount() == 0) {
} else {
while (cursor.moveToNext()) {
listItem.add(cursor.getString(0));
}
}
Object[] mStringArray = listItem.toArray();
Fragment fragment = new AFragment();
Bundle args = new Bundle();
assert mStringArray != null;
args.putString(AFragment.ARG_OBJECT, (String)mStringArray[i]);
fragment.setArguments(args);
return fragment;
}
@Override
public int getCount() {
String myInt=ListNavAdapter.ID_EXTRA;
ArrayList<String> listItem = new ArrayList<>();
SQLiteDatabase sqLiteDatabase = SqliteDatabase.getInstance(context).getWritableDatabase();
Cursor cursor = sqLiteDatabase.rawQuery("SELECT NAME FROM MyData WHERE HEADER=?", new String[]{"myInt"});
while (cursor.moveToNext()) {
listItem.add(cursor.getString(cursor.getColumnIndex("NAME")));
}
return listItem.size();
}
@Override
public CharSequence getPageTitle(int position) {
//return tabTitleArray[position];
return "Object " + (position + 1);
}
This is AFragment class
Bundle args = getArguments();
((TextView) rootView.findViewById(R.id.text1)).setText(args.getString(ARG_OBJECT));
return rootView;
I have solved my problem.
For showing data in SwipeNav Activity, data should pass from ListNavAdapter to ListSwipePagerAdapter. But intent was sent to SwipeNav. HEADER was not showing in the ListSwipePagerAdapter. So ViewPager becomes blank.
I have solved the problem using Shared Preference.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.