Java 如何使阵列列表可单击?
我正在尝试处理此列表以使其可单击。 当我设置一个intent活动时,它不起作用,所以我如何处理这个数组列表中的每个元素。 错误是,当我按下这个数组列表中的任何元素时,它让我回到了我给出的最后一个意图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
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(位置);
开关(项目