在连接到另一个活动时,我在使用ClickListener(无论是OnClickListener
还是OnItemClickListener
)时遇到了麻烦。我已经尝试在列表中插入一些代码用于点击事件,但它不起作用。它总是给我错误。
以下是我的字母表活动
public class Alphabet_Activity extends Activity
{
private List<Alpha> myAlpha=new ArrayList<Alpha>();
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alphabet);
populateAlphaList();
populateListView();
registerClickableList();
}
//------------------------------------------------------------>
//----->for contents of my list in ListView<------------------
//------------------------------------------------------------>
private void populateAlphaList()
{
myAlpha.add(new Alpha("A", R.drawable.a));
myAlpha.add(new Alpha("B", R.drawable.b));
myAlpha.add(new Alpha("C", R.drawable.c));
myAlpha.add(new Alpha("D", R.drawable.d));
myAlpha.add(new Alpha("E", R.drawable.e));
myAlpha.add(new Alpha("F", R.drawable.f));
myAlpha.add(new Alpha("G", R.drawable.g));
myAlpha.add(new Alpha("H", R.drawable.h));
myAlpha.add(new Alpha("I", R.drawable.i));
myAlpha.add(new Alpha("J", R.drawable.j));
myAlpha.add(new Alpha("K", R.drawable.k));
myAlpha.add(new Alpha("L", R.drawable.l));
myAlpha.add(new Alpha("M", R.drawable.m));
myAlpha.add(new Alpha("N", R.drawable.n));
myAlpha.add(new Alpha("O", R.drawable.o));
myAlpha.add(new Alpha("P", R.drawable.p));
myAlpha.add(new Alpha("Q", R.drawable.q));
myAlpha.add(new Alpha("R", R.drawable.r));
myAlpha.add(new Alpha("S", R.drawable.s));
myAlpha.add(new Alpha("T", R.drawable.t));
myAlpha.add(new Alpha("U", R.drawable.u));
myAlpha.add(new Alpha("V", R.drawable.v));
myAlpha.add(new Alpha("W", R.drawable.w));
myAlpha.add(new Alpha("X", R.drawable.x));
myAlpha.add(new Alpha("Y", R.drawable.y));
myAlpha.add(new Alpha("Z", R.drawable.z));
}
//-------------------------------------------------------------------------------------->
//----->for calling the values in Alpha Activity to Alphabet Activity<------------------
//-------------------------------------------------------------------------------------->
private void populateListView()
{
ArrayAdapter<Alpha> adapter=new MyListAdapter();
ListView list=(ListView) findViewById(R.id.alphaListView);
list.setAdapter(adapter);
}
//--------------------------------------------------------------------------->
//----->for getting message after clicking one of the list<------------------
//--------------------------------------------------------------------------->
private void registerClickableList() {
ListView list = (ListView) findViewById(R.id.alphaListView);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View viewClicked,
int position, long id) {
Alpha clickedAlpha = myAlpha.get(position);
String message = "You clicked " + position + clickedAlpha.getName();
Toast.makeText(Alphabet_Activity.this, message, Toast.LENGTH_LONG).show();
}
});
}
//------------------------------------------------------------------------------>
//------>calling of values in Alpha Activity and contents in myAlpha<-----------
//------------------------------------------------------------------------------>
private class MyListAdapter extends ArrayAdapter<Alpha>
{
public MyListAdapter()
{
super(Alphabet_Activity.this, R.layout.alpha, myAlpha);
}
@Override
public View getView( int position, View convertView, ViewGroup parent)
{
View itemView=convertView;
if(itemView==null)
{
itemView=getLayoutInflater().inflate(R.layout.alpha, parent,false);
}
//---------------------
Alpha currentAlpha=myAlpha.get(position);
ImageView imageView=(ImageView)itemView. findViewById(R.id.icon_Alpha);
imageView.setImageResource(currentAlpha.geticonAlpha());
TextView name=(TextView) itemView.findViewById(R.id.alpha_Name);
name.setText(currentAlpha.getName());
return itemView;
//return super.getView(position, convertView, parent);
}
}
}
以下是我的Alpha活动的代码
public class Alpha {
private String Name;
private int iconAlpha;
public Alpha(String make, int iconAlpha) {
super();
this.Name = Name;
this.iconAlpha = iconAlpha;
}
public String getName() {
return Name;
}
public int geticonAlpha() {
return iconAlpha;
}
}
答案 0 :(得分:1)
您的代码运行正常。它只是一个小错误。
在Alpha类中,将String make命名为Name。
要调用不同的活动,请在onItemClick
中添加以下代码switch (position) {
case 0:
Intent a = new Intent(getApplicationContext(), AActivity.class);
startActivity(a);
break;
case 1:
Intent b = new Intent(getApplicationContext(), BActivity.class);
startActivity(b);
break;
}
同样根据您的要求添加案例。
或
您可以按顺序创建所有新活动的字符串数组。
然后你可以通过arr [position]获取活动名称 并致电
意图b =新意图(getApplicationContext(),arr [pos]); startActivity(B);
然后在这种情况下不需要开关盒
答案 1 :(得分:0)
删除
ListView list=(ListView) findViewById(R.id.alphaListView);
来自populateListView()和registerClickableList().........................
在onCreate方法中添加它,然后在这两个函数中使用相同的对象。
在这里,您要创建两个不同的对象。您需要一个对象