当我从另一个活动回来时,我如何保持选择(播放活动)

问题描述 投票:0回答:2

这个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;
        }



    }
java listview android-arrayadapter
2个回答
0
投票

您应该将最后单击的项目的位置存储在活动片段中。然后,当导航回到该活动时,您可以在列表视图上设置这样的位置:

listView.smoothScrollToPosition()

0
投票

感谢上帝经过长时间的努力,我发现了这个,而且这项工作很好

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);
© www.soinside.com 2019 - 2024. All rights reserved.