как я остаюсь выбранным, когда я возвращаюсь из другой деятельности (игра Активность) - PullRequest
0 голосов
/ 15 февраля 2019

это MainActivity данные. У меня есть несколько данных в просмотре списка, около 100 данных в списке, поэтому мой вопрос: когда я нажимаю на первый элемент в просмотре списка, он переходит к другому занятию, а затем я возвращаюсь из этого занятия, чтобы просмотреть его нормальночто он показывается сначала, но когда я нажимаю на средний или последний элемент в просмотре списка, он переходит к другому действию, когда я возвращаюсь из этого действия в действие просмотра списка, он показывает мне данные сначала, так как я остаюсь выбранным для элемента в просмотре списка при возвращении из предыдущего действия?

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



    }

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

слава Богу, после долгой борьбы я нашел это и это прекрасно работает только этот код

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);
0 голосов
/ 15 февраля 2019

Вы должны сохранить позицию последнего нажатого элемента во фрагменте действия.Затем при возвращении к этому занятию вы можете установить позицию в списке следующим образом:

listView.smoothScrollToPosition()
...