Java 希望将listview中的项发送到另一个类
我现在只想在listview中打开另一个类的第一项。 代码所在的brands类可以正常打开,但是如果我单击一个listitem,它就会停止工作。 我从Android Studio没有收到任何错误,所以我不知道从哪里开始 这是我的密码:Java 希望将listview中的项发送到另一个类,java,android,class,listview,Java,Android,Class,Listview,我现在只想在listview中打开另一个类的第一项。 代码所在的brands类可以正常打开,但是如果我单击一个listitem,它就会停止工作。 我从Android Studio没有收到任何错误,所以我不知道从哪里开始 这是我的密码: public class brands extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(s
public class brands extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.brand_list);
setTitle("Order By Brand");
final ArrayList<Brand> brands = new ArrayList<Brand>();
brands.add(new Brand("Black Label",R.drawable.black_label,R.color.black_label));
brands.add(new Brand("Castle Lager", R.drawable.castle_lager,R.color.castle_lager));
brands.add(new Brand("Castle Lite",R.drawable.castle_lite,R.color.castle_lite));
brands.add(new Brand("Castle Milk Stout",R.drawable.milk_stout,R.color.castle_milk_stout));
brands.add(new Brand("Hansa Pilsner",R.drawable.hansa,R.color.hansa));
brands.add(new Brand("Flying Fish",R.drawable.flying_fish,R.color.flying_fish));
brands.add(new Brand("Lion Lager",R.drawable.lion_lager,R.color.lion_lager));
brands.add(new Brand("Redd's",R.drawable.redds,R.color.redds));
brands.add(new Brand("Brutal Fruit",R.drawable.brutal_fruit,R.color.brutal_fruit));
BrandAdapter adapter = new BrandAdapter(this, brands, R.color.order_by_brand);
ListView listView = (ListView) findViewById(R.id.list);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
ListView black_label = (ListView) findViewById(R.id.list);
black_label.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent black_labelIntent = new Intent(brands.this, black_label.class);
startActivity(black_labelIntent);
}
});
}}
);
}}
public class brands扩展应用程序活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(右布局、品牌列表);
setTitle(“按品牌订购”);
最终ArrayList品牌=新ArrayList();
品牌。添加(新品牌(“黑色标签”,R.drawable.Black_标签,R.color.Black_标签));
品牌。添加(新品牌(“Castle Lager”,R.drawable.Castle_Lager,R.color.Castle_Lager));
品牌。添加(新品牌(“Castle Lite”,R.drawable.Castle_Lite,R.color.Castle_Lite));
品牌。添加(新品牌(“Castle Milk Stout”,R.drawable.Milk_Stout,R.color.Castle_Milk_Stout));
添加(新品牌(“Hansa Pilsner”,R.drawable.Hansa,R.color.Hansa));
品牌。添加(新品牌(“飞鱼”,R.drawable.Flying_Fish,R.color.Flying_Fish));
品牌。添加(新品牌(“Lion Lager”,R.drawable.Lion_Lager,R.color.Lion_Lager));
添加(新品牌(“Redd”,R.drawable.Redd,R.color.Redd));
品牌。添加(新品牌(“野蛮水果”,R.drawable.野蛮水果,R.color.野蛮水果));
BrandAdapter=新的BrandAdapter(此,品牌,R.color.按品牌订购);
ListView ListView=(ListView)findViewById(R.id.list);
setAdapter(适配器);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView AdapterView,视图视图,整型位置,长id){
ListView黑色标签=(ListView)findViewById(R.id.list);
黑色标签.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Intent black_labelinent=新Intent(brands.this,black_label.class);
StartTactivity(黑色标签);
}
});
}}
);
}}
这是因为您试图打开一个非活动类。创建意图时,应提供在清单中声明的活动类
像这样更改您的McClick实现
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
Intent black_labelIntent = new Intent(brands.this, <the_activity_you_want_to_open>.class);
startActivity(black_labelIntent);
}}
);
listView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView AdapterView,视图视图,整型位置,长id){
Intent black_Labelinent=新Intent(brands.this.class);
StartTactivity(黑色标签);
}}
);
不要使用listview。google不建议使用recyclerview。它是“更聪明”的。santalu已经给出了答案