0
我剛剛創建了這個listview以及點擊其中一個listview項目時需要啓動的一些活動。當我點擊第一個Listview項目時,它應該啓動「ABActivity」,而不是啓動應用程序崩潰的活動。有人能告訴我如何解決這個問題嗎?Listview打開新的活動
這裏是我的MainActivity文件:
package pcsalt.example.customlistviewdemo;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity {
ListView lvDetail;
Context context = MainActivity.this;
ArrayList<ListData> myList = new ArrayList<ListData>();
String[] title = new String[] {
"Above & Beyond", "Afrojack", "DJ 3", "DJ 4",
"DJ 5", "DJ 6", "DJ 7", "DJ 8"
};
String[] desc = new String[] {
"56:58", "58:49", "60:00", "60:00",
"60:00", "60:00", "60:00", "60:00"
};
int[] img = new int[] {
R.drawable.star3, R.drawable.star3, R.drawable.star3, R.drawable.star3,
R.drawable.star3, R.drawable.star3, R.drawable.star3, R.drawable.star8
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lvDetail = (ListView) findViewById(R.id.lvCustomList);
// insert data into the list before setting the adapter
// otherwise it will generate NullPointerException - Obviously
getDataInList();
lvDetail.setAdapter(new MyBaseAdapter(context, myList));
}
private void getDataInList() {
for(int i=0;i<8;i++) {
// Create a new object for each list item
ListData ld = new ListData();
ld.setTitle(title[i]);
ld.setDescription(desc[i]);
ld.setImgResId(img[i]);
// Add this object into the ArrayList myList
myList.add(ld);
}
lvDetail.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id)
{
// In the following line "v" refers to the View returned by the `getView()` method; meaning the clicked View.
TextView txtName = (TextView)v.findViewById(R.id.lvCustomList);
String name = txtName.getText().toString();
switch(name)
{
case "Above & Beyond":
Intent intent = new Intent(MainActivity.this, ABActivity.class);
startActivity(intent);
break;
case "Afrojack":
Intent intent1 = new Intent(MainActivity.this, AfrojackActivity.class);
startActivity(intent1);
break;
//And so on and so forth....
}
}
});
謝謝。