démarrer une nouvelle activité sur cliquez sur l'élément listview
J'ai besoin d'aide pour faire un simple clic sur un élément de liste pour ouvrir une nouvelle Activité. J'ai vu beaucoup de ce genre de questions ici, mais personne ne m'a aidé.
public class CustomListView extends ListActivity {
private EfficientAdapter adap;
...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
adap = new EfficientAdapter(this);
setListAdapter(adap);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
//TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
startActivity(new Intent(CustomListView.this, next.class));
}
public static class EfficientAdapter extends BaseAdapter implements Filterable {
private LayoutInflater mInflater;
private Bitmap mIcon1;
private Context context;
public EfficientAdapter(Context context) {
//Cache the LayoutInflate to avoid asking for a new one each time.
mInflater = LayoutInflater.from(context);
this.context = context;
}
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.adaptor_content, null);
convertView.setOnClickListener(new OnClickListener() {
private int pos = position;
@Override
public void onClick(View v) {
}
});
convertView.setTag(holder);
}else{
//Get the ViewHolder back to get fast access to the TextView
//and the ImageView.
holder = (ViewHolder) convertView.getTag();
}
return convertView;
}
...
}
}
J'ai essayé aussi d'ajouter le code suivant à l'intérieur de la méthode onCreate de CustomListView classe, mais il ne fonctionne pas, soit
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) {
startActivity(new Intent(CustomListView.this, next.class));
}
});
"Il n'a pas de travail" est très vague... Ce qui se passe dans le premier exemple, lorsque vous cliquez sur un élément? Recevez-vous des erreurs? Veuillez les poster si vous le faites.
Qu'est-ce que
Qu'est-ce que
one
comme dans one.this
que vous passer dans la Intent
constructeur? Essayez CustomListView.this
.
OriginalL'auteur jj-aa | 2012-06-15
Vous devez vous connecter pour publier un commentaire.
Supprimer la
onListItemClick()
de votreCustomListView
de classe et le lieu de lastartActivity()
méthode à l'intérieur de laconvertView.setOnClickListener()
.OriginalL'auteur slybloty
Essayer ce code. Je suis sûr que Cela va vous aider et ne mettez pas de classe dans un fichier xml comme ceci;
assurez-vous que vous n'avez mis que le code ci-dessus dans votre classe, sinon tu vas avoir une erreur lors de l'ouverture d'une nouvelle activité.
OriginalL'auteur Sabri Meviş
Dans vous code
one.this
se réfère à laContext
.Depuis votre Activité nom de l'
CustomListView
, vous devriez écrireCustomListView.this
au lieu deone.this
.Vous pouvez également utiliser
getApplicationContext()
.OriginalL'auteur Benito Bertoli
Essayer de mettre la
startActivity(new Intent(one.this, two.class));
-code dansQuoi.s'agit-il? Il devrait être un
Context
Essayez
startActivity(new Intent(context, two.class));
, depuis un contexte qui est passé à laAdapter
-Ne fonctionne pas, j'ai aussi essayé avant, envoyait le message d'erreur: Impossible de faire une référence statique pour les non-statique méthode startActivity(Intent) à partir du type d'Activité
Essayez
context.startActivity(new Intent(context, two.class));
Maintenant.. erreur:android.app.SuperNotCalledException: Activité {com.xxx/com.xxx.SingleActivity} n'a pas d'appel par le biais de super.onCreate()
OriginalL'auteur Nick