【问题标题】:I have two Activity of same list item i want to sellect first list item valu我有两个相同列表项的活动我想选择第一个列表项值
【发布时间】:2014-01-17 14:26:28
【问题描述】:

我有两个相同列表项的活动我想选择第一个列表项值,然后转到同一位置的另一个活动列表项值。我的代码是:

public class First extends Activity{

    ListView lv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.first);  

        lv=(ListView)findViewById(R.id.listView1);
        String[] values = new String[] {"aa","bb","cc","dd","ee","ff","gg","hh","ii","jj","kk","ll","mm","nn","oo","pp","qq","rr","ss","tt"};

        ArrayAdapter<String>ad=new ArrayAdapter(this,android.R.layout.simple_list_item_1,values);
        lv.setAdapter(ad);

        lv.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {

                if(id==1) {   
                } 
            }
        }); 
    } 
}

【问题讨论】:

    标签: android arrays list


    【解决方案1】:

    如果我正确理解你想要的,在你的 OnItemClickListener 中,你可以这样做:

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,long id) {
    
        String value = values[position];
        Intent intent = new Intent (this, OtherActivity.class);
        intent.putExtra(VALUE_EXTRA_NAME, value);
        intent.putExtra(POSITION_EXTRA_NAME, position);
        startActivity(intent);
    }
    

    然后在OtherActivity的onCreate方法中,获取String值和被点击项的位置(可以用setSelection(int position)滚动到相同的位置:

    Intent intent = getIntent();
    String value = intent.getStringExtra(VALUE_EXTRA_NAME);
    int positionClicked = intent.getIntExtra(POSITION_EXTRA_NAME,0);
    listView.setSelection(positionClicked);
    // do something with the String value
    

    【讨论】:

    • Intent 不进入另一个活动 POSITION_EXTRA_NAME , VALUE_EXTRA_NAME 如何获取 List 的值此代码不起作用
    • 我真的不明白你的意思,对不起......无论如何,我已经成功使用了这种模式数百次,所以我需要更多的信息,而不仅仅是“这个代码不起作用”,以帮助您解决问题...
    【解决方案2】:

    onItemClick添加

    Intent intent = new Intent(First.this, NextActivity.class);
    intent.putExtra("position", position);
    startActivity(intent);
    

    NextActivity.class

    int position;  
    Bundle extras = getIntent().getExtras();
    if (extras != null) { 
       position= extras.getInt("position"); 
    } 
    yourListView.setSelection(position);
    

    【讨论】:

    • 下一个活动我应该在哪个位置添加 int 位置;捆绑附加服务 = getIntent().getExtras(); if (extras != null) { position= extras.getInt("position"); } setSelection(位置);
    • listview.setSelection(位置);添加ListView后
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 2018-11-01
    • 2012-03-21
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 2015-11-05
    相关资源
    最近更新 更多