Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使阵列列表可单击?_Java_Android_Listview_Arraylist - Fatal编程技术网

Java 如何使阵列列表可单击?

Java 如何使阵列列表可单击?,java,android,listview,arraylist,Java,Android,Listview,Arraylist,我正在尝试处理此列表以使其可单击。 当我设置一个intent活动时,它不起作用,所以我如何处理这个数组列表中的每个元素。 错误是,当我按下这个数组列表中的任何元素时,它让我回到了我给出的最后一个意图 package com.adnan.android.autofix; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import a

我正在尝试处理此列表以使其可单击。 当我设置一个intent活动时,它不起作用,所以我如何处理这个数组列表中的每个元素。 错误是,当我按下这个数组列表中的任何元素时,它让我回到了我给出的最后一个意图

package com.adnan.android.autofix;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.view.menu.MenuView;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.GridView;
import android.widget.ListView;
import android.widget.ScrollView;
import android.widget.TextView;

import java.net.Inet4Address;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity implements {

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

        // Array list content
        ArrayList<String> CarsBrand = new ArrayList<String>();
        CarsBrand.add("Alfa Romeo");
        CarsBrand.add("Audi");
        CarsBrand.add("BMW");
        CarsBrand.add("Brilliance");
        CarsBrand.add("BYD");
        CarsBrand.add("Changan");
        CarsBrand.add("Chery");
        CarsBrand.add("Chevorlet");
        CarsBrand.add("Chrysler");
        ArrayAdapter<String> CarsBrandAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, CarsBrand);

        GridView listView = (GridView) findViewById(R.id.ListCarsBrands);

        listView.setAdapter(CarsBrandAdapter);

        // handling the array list
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent AlfaRomeoIntent = new Intent(MainActivity.this, AlfaRomeo.class);
                startActivity(AlfaRomeoIntent);

                Intent AudiIntent = new Intent(MainActivity.this, com.adnan.android.autofix.Audi.class);
                startActivity(AudiIntent);
            }
        });


    }
}
package com.adnan.android.autofix;
导入android.content.Intent;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.support.v7.view.menu.MenuView;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.GridView;
导入android.widget.ListView;
导入android.widget.ScrollView;
导入android.widget.TextView;
导入java.net.Inet4Address;
导入java.util.ArrayList;
公共类MainActivity扩展了AppCompatActivity实现{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//数组列表内容
ArrayList CarsBrand=新的ArrayList();
CarsBrand.add(“阿尔法罗密欧”);
CarsBrand.添加(“奥迪”);
加上“宝马”;
加上(“华晨”);
加上“比亚迪”;
加上“长安”;
添加(“奇瑞”);
CarsBrand.添加(“Chevorlet”);
加上“克莱斯勒”;
ArrayAdapter carsbrandapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,CarsBrand);
GridView listView=(GridView)findViewById(R.id.ListCarsBrands);
setAdapter(carsbrandapter);
//处理数组列表
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
意向阿尔法罗密欧指令=新意向(MainActivity.this,AlfaRomeo.class);
startActivity(阿尔法罗软膏);
Intent AudiIntent=新Intent(MainActivity.this、com.adnan.android.autofix.Audi.class);
开始触觉(听觉内容);
}
});
}
}

也许您可以将列表项映射到相应的活动类,如下所示:

package com.adnan.android.autofix;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.view.menu.MenuView;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.GridView;
import android.widget.ListView;
import android.widget.ScrollView;
import android.widget.TextView;

import java.net.Inet4Address;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity implements {
    HashMap<String, Class> intentMap ;
    ArrayList<String> CarsBrand;

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

        // Array list content
        CarsBrand = new ArrayList<String>();
        CarsBrand.add("Alfa Romeo");
        CarsBrand.add("Audi");
        CarsBrand.add("BMW");
        CarsBrand.add("Brilliance");
        CarsBrand.add("BYD");
        CarsBrand.add("Changan");
        CarsBrand.add("Chery");
        CarsBrand.add("Chevorlet");
        CarsBrand.add("Chrysler");
        ArrayAdapter<String> CarsBrandAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, CarsBrand);

        intentMap = new HashMap<String, Class>()
        {{
        put("Alfa Romeo", AlfaRomeo.class);
        put("Audi", Audi.class);
        // PUT ALL STRING-CLASS PAIRS LIKE THIS

        }};

        GridView listView = (GridView) findViewById(R.id.ListCarsBrands);

        listView.setAdapter(CarsBrandAdapter);

        // handling the array list
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    Class selectedIntentClass = intentMap.get(CarsBrand.get(position));
                    Intent intent = new Intent(MainActivity.this, selectedIntentClass);
                    startActivity(intent);
                }
            });
        }
    }
package com.adnan.android.autofix;
导入android.content.Intent;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.support.v7.view.menu.MenuView;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.GridView;
导入android.widget.ListView;
导入android.widget.ScrollView;
导入android.widget.TextView;
导入java.net.Inet4Address;
导入java.util.ArrayList;
公共类MainActivity扩展了AppCompatActivity实现{
HashMap-intentMap;
ArrayList CarsBrand;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//数组列表内容
CarsBrand=newarraylist();
CarsBrand.add(“阿尔法罗密欧”);
CarsBrand.添加(“奥迪”);
加上“宝马”;
加上(“华晨”);
加上“比亚迪”;
加上“长安”;
添加(“奇瑞”);
CarsBrand.添加(“Chevorlet”);
加上“克莱斯勒”;
ArrayAdapter carsbrandapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,CarsBrand);
intentMap=newhashmap()
{{
put(“阿尔法罗密欧”,阿尔法罗密欧等级);
put(“奥迪”,奥迪级);
//像这样放置所有字符串类对
}};
GridView listView=(GridView)findViewById(R.id.ListCarsBrands);
setAdapter(carsbrandapter);
//处理数组列表
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
类selectedtentclass=intentMap.get(CarsBrand.get(position));
意向意向=新意向(MainActivity.this,selectedtentclass);
星触觉(意向);
}
});
}
}

您可以这样尝试:

package com.adnan.android.autofix;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.view.menu.MenuView;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.GridView;
import android.widget.ListView;
import android.widget.ScrollView;
import android.widget.TextView;

import java.net.Inet4Address;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity implements {

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

        // Array list content
        ArrayList<String> CarsBrand = new ArrayList<String>();
        CarsBrand.add("Alfa Romeo");
        CarsBrand.add("Audi");
        CarsBrand.add("BMW");
        CarsBrand.add("Brilliance");
        CarsBrand.add("BYD");
        CarsBrand.add("Changan");
        CarsBrand.add("Chery");
        CarsBrand.add("Chevorlet");
        CarsBrand.add("Chrysler");
        ArrayAdapter<String> CarsBrandAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, CarsBrand);

        GridView listView = (GridView) findViewById(R.id.ListCarsBrands);

        listView.setAdapter(CarsBrandAdapter);

        // handling the array list
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                final String item = (String)parent.getItemAtPosition(position);
                switch (item) {
                    case "Alfa Romeo":
                        Intent AlfaRomeoIntent = new Intent(MainActivity.this, AlfaRomeo.class);
                        startActivity(AlfaRomeoIntent);
                        break;
                    case "Audi":
                        Intent AudiIntent = new Intent(MainActivity.this, com.adnan.android.autofix.Audi.class);
                        startActivity(AudiIntent);
                        break;
                }
            }
        });


    }
}
package com.adnan.android.autofix;
导入android.content.Intent;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.support.v7.view.menu.MenuView;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.GridView;
导入android.widget.ListView;
导入android.widget.ScrollView;
导入android.widget.TextView;
导入java.net.Inet4Address;
导入java.util.ArrayList;
公共类MainActivity扩展了AppCompatActivity实现{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//数组列表内容
ArrayList CarsBrand=新的ArrayList();
CarsBrand.add(“阿尔法罗密欧”);
CarsBrand.添加(“奥迪”);
加上“宝马”;
加上(“华晨”);
加上“比亚迪”;
加上“长安”;
添加(“奇瑞”);
CarsBrand.添加(“Chevorlet”);
加上“克莱斯勒”;
ArrayAdapter carsbrandapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,CarsBrand);
GridView listView=(GridView)findViewById(R.id.ListCarsBrands);
setAdapter(carsbrandapter);
//处理数组列表
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
最终字符串项=(字符串)父项.getItemAtPosition(位置);
开关(项目