自定义listview智能保持器按钮单击时出现java问题
实际上,我正在尝试使用自定义列表视图创建一个应用程序
在此应用程序中,当主活动将初始化时,将出现一个列表视图, 然后,当用户单击列表项时,“获取位置信息”将打开不同的活动。。。然后在不同的活动中会出现相同的新listView,到目前为止我已经完成了
但当点击不同活动的列表项后,将打开另一个活动,但根据主活动位置会出现相同的活动
**
现在请帮助我,我如何控制支架。列表按钮按活动方式单击强>
**
这是我的CustomBaseAdapter源代码
package com.sbappstore.romjanbanglacalendar;
import 安卓.content.Context;
import 安卓.content.Intent;
import 安卓.support.v7.widget.Toolbar;
import 安卓.view.LayoutInflater;
import 安卓.view.View;
import 安卓.view.ViewGroup;
import 安卓.widget.BaseAdapter;
import 安卓.widget.Button;
import 安卓.widget.LinearLayout;
import com.blogspot.atifsoftwares.animatoolib.Animatoo;
import java.lang.annotation.Target;
public class CustomBaseAdapter extends BaseAdapter {
String[] Name_of_District;
Context context;
private static LayoutInflater inflater = null;
//Constructor
public CustomBaseAdapter(MainActivity mainActivity, String[] Names_of_District){
Name_of_District = Names_of_District;
context = mainActivity;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
//Constructor
public CustomBaseAdapter(DhakaDistrict dhakaDistrict, String[] dhakaDistrictNames) {
Name_of_District = dhakaDistrictNames;
context = dhakaDistrict;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
//Constructor
public CustomBaseAdapter(BorishalDistrict borishalDistrict, String[] borishaDistrictNames) {
Name_of_District = borishaDistrictNames;
context = borishalDistrict;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
//Constructor
public CustomBaseAdapter(ChattogramDistrict chattogramDistrict, String[] chattogramDistrictNames) {
Name_of_District = chattogramDistrictNames;
context = chattogramDistrict;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
//Constructor
public CustomBaseAdapter(KhulnaDistrict khulnaDistrict, String[] khulnaDistrictNames) {
Name_of_District = khulnaDistrictNames;
context = khulnaDistrict;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
//Constructor
public CustomBaseAdapter(MoymonsinghDistrict moymonsinghDistrict, String[] moymonsinghDistrictNames) {
Name_of_District = moymonsinghDistrictNames;
context = moymonsinghDistrict;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
//Constructor
public CustomBaseAdapter(ProyojoniyoDua proyojoniyoDua, String[] dua) {
Name_of_District = dua;
context = proyojoniyoDua;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
//Constructor
public CustomBaseAdapter(QuranHadith quranHadith, String[] hadithQuran) {
Name_of_District = hadithQuran;
context = quranHadith;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
//Constructor
public CustomBaseAdapter(RajshahiDistrict rajshahiDistrict, String[] rajshahiDistrictNames) {
Name_of_District = rajshahiDistrictNames;
context = rajshahiDistrict;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
//Constructor
public CustomBaseAdapter(RangporDistrict rangporDistrict, String[] rongpurDistrictNames) {
Name_of_District = rongpurDistrictNames;
context = rangporDistrict;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
//Constructor
public CustomBaseAdapter(RomjanerKhaddavash romjanerKhaddavash, String[] khaddavvash) {
Name_of_District = khaddavvash;
context = romjanerKhaddavash;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
//Constructor
public CustomBaseAdapter(SylhetDistrict sylhetDistrict, String[] sylhetDistrictNames) {
Name_of_District = sylhetDistrictNames;
context = sylhetDistrict;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
//Constructor
public CustomBaseAdapter(ArticleMasyala articleMasyala, String[] masayla) {
Name_of_District = masayla;
context = articleMasyala;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return Name_of_District.length;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
public class MyHolder{
Button ListButton;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final MyHolder holder = new MyHolder();
final View view;
view = inflater.inflate(R.layout.custom_list, null);
holder.ListButton = (Button) view.findViewById(R.id.ListButton);
holder.ListButton.setText(Name_of_District[position]);
holder.ListButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View customView) {
int id = customView.getId();
if (position==0) {
//Toast.makeText(context,"Position 0", Toast.LENGTH_SHORT).show();
context.startActivity(new Intent(context,DhakaDistrict.class));
Animatoo.animateSlideLeft(context);
}
if (position==1) {
context.startActivity(new Intent(context,ChattogramDistrict.class));
Animatoo.animateSlideLeft(context);
}
if (position==2) {
context.startActivity(new Intent(context,SylhetDistrict.class));
Animatoo.animateSlideLeft(context);
}
if (position==3) {
context.startActivity(new Intent(context,BorishalDistrict.class));
Animatoo.animateSlideLeft(context);
}
if (position==4) {
context.startActivity(new Intent(context,MoymonsinghDistrict.class));
Animatoo.animateSlideLeft(context);
}
if (position==5) {
context.startActivity(new Intent(context,RajshahiDistrict.class));
Animatoo.animateSlideLeft(context);
}
if (position==6) {
context.startActivity(new Intent(context,KhulnaDistrict.class));
Animatoo.animateSlideLeft(context);
}
if (position==7) {
context.startActivity(new Intent(context,RangporDistrict.class));
Animatoo.animateSlideLeft(context);
}
if (position==8) {
context.startActivity(new Intent(context,ProyojoniyoDua.class));
Animatoo.animateSlideLeft(context);
}
if (position==9) {
context.startActivity(new Intent(context,QuranHadith.class));
Animatoo.animateSlideLeft(context);
}
if (position==10) {
context.startActivity(new Intent(context,ArticleMasyala.class));
Animatoo.animateSlideLeft(context);
}
if (position==11) {
context.startActivity(new Intent(context,RomjanerKhaddavash.class));
Animatoo.animateSlideLeft(context);
}
}
});
return view;
}
}
这是我的主要活动。爪哇
<pre><code>
package com.sbappstore.romjanbanglacalendar;
import 安卓.os.Bundle;
import 安卓.widget.ListView;
public class MainActivity extends ToolbarAdapter {
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
getSupportActionBar().setDisplayUseLogoEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
listView = (ListView) findViewById(R.id.listViewId);
String[] districtNames = getResources().getStringArray(R.array.District_Names);
CustomBaseAdapter adapter = new CustomBaseAdapter(this,districtNames);
listView.setAdapter(adapter);
}
}
<pre><code>
其他人都像下面这样活动
<pre><code>
package com.sbappstore.romjanbanglacalendar;
import 安卓.support.v7.app.AppCompatActivity;
import 安卓.os.Bundle;
import 安卓.widget.ListView;
public class DhakaDistrict extends ToolbarAdapter {
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dhaka_district);
getSupportActionBar().setTitle("ঢাকা বিভাগ");
listView = (ListView) findViewById(R.id.listViewId);
String[] dhakaDistrictNames = getResources().getStringArray(R.array.Dhaka_District_Names);
CustomBaseAdapter adapter = new CustomBaseAdapter(this,dhakaDistrictNames);
listView.setAdapter(adapter);
}
}
# 1 楼答案
首先,使用
RecyclerView
ListView
是旧的,并且RecyclerView
具有更好的结构第二,不要使用位置作为ID。在您的情况下,不会有任何问题。但是位置是可以改变的,所以是危险的
下面的代码是我的建议,它不是一个完整的代码,只是关注如何使用
ViewHolder
模式