有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何对ListView中的每个位置执行不同的操作?

我想为ListView中的每一项做一个不同的操作(可能是意图),而不是Toast,谢谢

这是我的java代码

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // Array of strings...
        final String[] mobileArray = {"Android", "IPhone", "WindowsMobile", "Blackberry",
                "WebOS", "Ubuntu", "Windows7", "Max OS X"};


        final ArrayAdapter adapter = new ArrayAdapter<String>(this,
                R.layout.activity_listview, mobileArray);

        final ListView listView = (ListView) findViewById(R.id.listView);
        listView.setAdapter(adapter);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> a, View v, int position,
                                    long id) {
                Toast.makeText(MainActivity.this, "hello world", Toast.LENGTH_SHORT).show();


                }
            });
     }
}

共 (2) 个答案

  1. # 1 楼答案

    使用position在listView的不同行上执行不同的操作。Setonic就是这样的听众

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> a, View v, int position,
                                long id) {
           switch (position){
                 case 0:
                 // your code here
                 break;
                 case 1:
                 // your code
                 break;
                 ..... so on
            }
    
    
            }
        });
    
  2. # 2 楼答案

    您可以创建一个函数,将recive position作为它的参数

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                                                @Override
                                                public void onItemClick(AdapterView<?> a, View v, int position,
                                                                        long id) {
    
                                                    doSomething(position);
    
                                                }
                                                public void doSomething(int position){
    
                                                    switch(position)
                                                    {
                                                        case 1:
                                                            //do this
                                                            break;
                                                        case 2:
                                                            //do this
                                                        break;
                                                    }
                                                }});