我在Android列表视图中的定位有些麻烦,下一个活动没有加载,而它们都在清单中。
这是我的代码:
package com.WNF;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class Actiemenu extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// storing string resources into Array
String[] actiemenu = getResources().getStringArray(R.array.actiemenu);
// Binding resources Array to ListAdapter
this.setListAdapter(new ArrayAdapter<String>(this, R.layout.actiemenu, R.id.label, actiemenu));
ListView lv = getListView();
// listening to single list item on click
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
switch(position) {
case '0' :
Intent intent = new Intent(Actiemenu.this, Acties.class);
intent.putExtra("extras", position);
startActivity(intent);
break;
case '1' :
Intent intent2 = new Intent(Actiemenu.this, Acties2.class);
intent2.putExtra("extras", position);
startActivity(intent2);
break;
}
}
});
}
}
接收意图的代码也存在于Acties
中package com.WNF;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
public class Acties extends Activity{
// aanroepen van een bundle, kan je elke naam geven die je maar wilt,
//zolang de bundle als de onCreate maar dezelfde naam hebben
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// de setContentView is niets meer dan de gegevens van de
//View ophalen uit de R.layout.naamvandeXML
// Onthoud goed dat je dezelfde XMLs voor meerdere pagina's
//kan gebruiken.
setContentView(R.layout.acties1);
Intent i = getIntent();
i.getStringExtra("extras");
}
}
谁能看到我做错了什么? 在此先感谢:)
答案 0 :(得分:1)
您的switch语句错误地尝试将整数位置值与 ASCII字符 '0'
和'1'
匹配。由于'0'
的ASCII值为48,而'1'
的ASCII值为49,因此单击前两个列表项时没有任何反应。
你应该删除单引号并简单地使用整数:
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
switch(position) {
case 0: //Instead of '0'
Intent intent = new Intent(Actiemenu.this, Acties.class);
intent.putExtra("extras", position);
startActivity(intent);
break;
case 1: //Instead of '1'
Intent intent2 = new Intent(Actiemenu.this, Acties2.class);
intent2.putExtra("extras", position);
startActivity(intent2);
break;
}