ListView Ouvrir une nouvelle activité
-
21-12-2019 - |
Question
Je viens de créer cette liste de réception et de certaines activités qui doivent démarrer en cliquant sur l'un des éléments ListView.Lorsque je clique sur le premier élément ListView, il devrait démarrer "Abactivité", au lieu de démarrer l'activité, l'application se bloque.Certains peuvent-ils me dire comment résoudre ce problème?
Voici mon fichier MainAlactivité:
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....
}
}
});
merci.
La solution
Ajoutez ces activités au manifeste comme
<activity android:name=".ABActivity" />
<activity android:name=".AfrojackActivity" />
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow