这个MainActivity
数据我在listview中有多个数据围绕列表中的100个数据所以我的问题是当我点击listview中的第一个项目并且它转到另一个活动然后我从这个活动回到listview它的罚款它从第一个显示但是当我点击listview中的中间项或最后一项时,当我从这个活动回到listview活动时,它会转到另一个活动,它会向我显示第一个数据,这样当我从后面的活动中看到我在listview中的项目时如何保持选中状态?
final ArrayList<Data> datas = new ArrayList<Data>();
datas.add(new Data("ye_dosti",R.drawable.icons,R.raw.ye_dosti));
datas.add(new Data("ya_banday_mitti_k_banday",R.drawable.icons,R.raw.ya_banday_mitti_k_banday));
datas.add(new Data("aey_rah_e_haq_kay_shahido",R.drawable.icons,R.raw.aey_rah_e_haq_kay_shahido));
datas.add(new Data("aye_mard_e_mujahid",R.drawable.icons,R.raw.aye_mard_e_mujahid));
datas.add(new Data("aye_wattan_pyare_watten",R.drawable.icons,R.raw.aye_wattan_pyare_watten));
final dataAdapter adapter = new dataAdapter(this, datas);
ListView listView = (ListView) findViewById(R.id.listview);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {
try {
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
} else {
Data data =datas.get(position);
String text=data.getText().toLowerCase();
int audioid=data.getmAudioResource();
Intent intent =new Intent(MainActivity.this,playerActivtiy.class);
intent.putExtra(clickvalue,text);
intent.putExtra(audiovalue,audioid);
startActivity(intent);
finish();
}
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
requestNewInterstitial();
Data data =datas.get(position);
String text=data.getText().toLowerCase();
int audioid=data.getmAudioResource();
Intent intent =new Intent(MainActivity.this,playerActivtiy.class);
intent.putExtra(clickvalue,text);
intent.putExtra(audiovalue,audioid);
startActivity(intent);
finish();
}
});
} catch (Exception e) {
e.printStackTrace();
}
项目清单
dataAdapter所以我如何回到我点击Mainactivity的位置
public class dataAdapter extends ArrayAdapter<Data> {
Data currentword;
public dataAdapter(Context context, ArrayList<Data> data) {
super(context, 0,data);
}
@Override
public int getCount() {
return super.getCount();
}
@Override
public Data getItem(int position) {
return super.getItem(position);
}
@Override
public long getItemId(int position) {
return super.getItemId(position);
}
@Override
public View getView(int position,View convertView, ViewGroup parent) {
View list_item=convertView;
if(list_item == null){
list_item = LayoutInflater.from(getContext()).inflate(R.layout.listitems, parent, false);
}
currentword= getItem(position);
TextView texts=(TextView) list_item.findViewById(R.id.text);
texts.setText(currentword.getText());
texts.setTag(position);
ImageView mImageView = (ImageView) list_item.findViewById(R.id.images);
mImageView.setImageResource(currentword.getImageId());
mImageView.setTag(position);
list_item.setTag(position);
return list_item;
}
}
您应该将最后单击的项目的位置存储在活动片段中。然后,当导航回到该活动时,您可以在列表视图上设置这样的位置:
listView.smoothScrollToPosition()
感谢上帝经过长时间的努力,我发现了这个,而且这项工作很好
adapter = new dataAdapter(this, datas);
ListView listView = (ListView) findViewById(R.id.listview);
listView.setAdapter(adapter);
int h1=listView.getHeight();
listView.smoothScrollToPositionFromTop(comeback,h1,2);
listView.smoothScrollToPosition(comeback,0);
listView.setSelection(comeback);