Impossible de démarrer l'activité ComponentInfo: java.lang.NullPointerException
La Exception
:
Unable to start activity ComponentInfo{com.scytec.datamobile.vd.gui.android/com.scytec.datamobile.vd.gui.android.SelectedList}: java.lang.NullPointerException..
Je veux juste montrer liste de case à cocher afficher et sur chaque case afficher "checked", tout simplement, mais je ne sais pas pourquoi, cela me donne une exception.
public class SelectedList extends Activity implements IObserver{
private ListView machine_listview;
ArrayAdapter<String> adapter;
ArrayList<String> arrayListofMachines;
ArrayList<String> arrayListofMachineNumbers;
Vector<MDCMachineStatus> machineStatus_vector;
Handler handler;
private static int oldPosition = 0;
private Boolean firstClick = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
//TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.machinelistview);
machine_listview = (ListView) findViewById(R.id.machine_listview);
machine_listview.setFastScrollEnabled(true);
MachineStatusSingleton.Register(this);
getData();
adapter = new ArrayAdapter<String>(SelectedList.this, R.layout.selectedlist,R.id.text1, arrayListofMachines);
machine_listview.setAdapter(adapter);
machine_listview.setSelection(oldPosition);
CheckBox chk=(CheckBox)findViewById(R.id.check);
chk.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
TextView txt=(TextView)findViewById(R.id.xtra);
if (arg1)
Log.d("", "abul, checked") ;
else
Log.d("", "abul, not checked") ;
}
}
);
machine_listview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
//TODO Auto-generated method stub
oldPosition = position;
MachineStatusSingleton.setMachineNumber(arrayListofMachineNumbers.get(position));
SelectedList.this.finish();
}
});
handler = new Handler(){
public void handleMessage(android.os.Message msg) {
machine_listview.setAdapter(adapter);
adapter.notifyDataSetChanged();
};
};
}
public void Update(ISubject arg0) {
//TODO Auto-generated method stub
}
@Override
public void onDestroy()
{
super.onDestroy();
MachineStatusSingleton.Unregister(this);
}
private void getData(){
machineStatus_vector = MachineStatusSingleton.GetData();
arrayListofMachines = new ArrayList<String>();
arrayListofMachineNumbers = new ArrayList<String>();
for(MDCMachineStatus temp: machineStatus_vector){
arrayListofMachines.add(temp.toString());
arrayListofMachineNumbers.add(temp.getNumber());
}
Collections.sort(arrayListofMachines);
Collections.sort(arrayListofMachineNumbers);
}
private void updateData(){
getData();
handler.sendEmptyMessage(0);
adapter.notifyDataSetChanged();
int index = machine_listview.getFirstVisiblePosition();
View v = machine_listview.getChildAt(0);
int top = (v == null) ? 0 : v.getTop();
//...
//restore
machine_listview.setSelectionFromTop(index, top);
}
}
Pourriez-vous poster le plein de trace de pile?
Dans votre
désolé les gars.. j'ai un problème dans cette Case chk=(Case à cocher)findViewById(R. id.check); chk.setOnCheckedChangeListener(nouveau OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton arg0, boolean arg1) { TextView txt=(TextView)findViewById(R. id.xtra); if (arg1) Journal.d("", "abul, checked") ; else Journal.d("", "abul, pas cochée") ; } } );
Est
De modifier une Question à jour problème.
Dans votre
LogCat
, jetez un oeil à la dernière couple de rouge lignes qui vont vous donner le précise le numéro de ligne de la précise fichier java c'est la raison pour crash. Il lit quelque chose comme Dalvik... NullPointerException caused by...
désolé les gars.. j'ai un problème dans cette Case chk=(Case à cocher)findViewById(R. id.check); chk.setOnCheckedChangeListener(nouveau OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton arg0, boolean arg1) { TextView txt=(TextView)findViewById(R. id.xtra); if (arg1) Journal.d("", "abul, checked") ; else Journal.d("", "abul, pas cochée") ; } } );
Est
R.id.xtra
défini dans une mise en page?De modifier une Question à jour problème.
OriginalL'auteur Ahmad Arslan | 2012-02-09
Vous devez vous connecter pour publier un commentaire.
Nous exécutons notre application très bien et du coup, on rencontre NullPointerException ou Impossible de démarrer l'activité etc erreurs.
Fondamentalement NullPointerException ou Impossible de démarrer l'activité se produit lorsqu'il est question de onCreate() la méthode de notre Activité.
Cela se produit lorsque :
Nous changer toutes les valeurs xml de la disposition relative à cette Activité
Si nous n'avons pas la carte xml de l'INTERFACE utilisateur est bien dans notre Acivity
Essayez d'accéder à l'INTERFACE utilisateur qui est dans un autre fichier de mise en page.
Solution :
Première Croix de vérifier tous les éléments cartographiés
Donner de nom unique,
OriginalL'auteur Sravani
Directement après:
TextView txt=(TextView)findViewById(R. id.xtra);
... ajouter cette:
if (txt == null) { Log.w("", "TextView est null"); }
En supposant que votre pointeur null exception ne se produit pas jusqu'à ce que vous sélectionnez la case à cocher, qui sonne comme le plus probable. J'ai rencontré le même quand j'oublie que j'ai enlevé l'élément correspondant de la mise en page XML, ou si j'ai eu l'ID de mal. Habituellement, je envelopper toute action sur un élément retourné par "findViewById" dans un null vérifiez, pour s'assurer que, même si la recherche échoue, l'application au moins ne tombent pas en panne.
D'accord, la mise à jour du code pour tenir compte du changement est la meilleure approche, et de loin. Cependant, il est utile de considérer l'impact potentiel si un tel bug est raté, sans nul contrôles, l'application pourrait inutilisable, s'écraser à chaque fois que l'utilisateur tente de charger une page en particulier, par rapport à la valeur null contrôles, l'application va tout à fait susceptibles de rester en cours d'exécution avec visual bugs. La décision d'utiliser la valeur null de vérification de modèle ou non peut être influencé par le fait que l'un est le développement de projets en solo sur le côté, au lieu d'avoir plein d'AQ de soutien pour assurer la pleine application de la stabilité.
OriginalL'auteur DreadPirateShawn
Dirait que vous êtes en assignant à la
chk
, et par la suite,txt
en appelantfindViewById
comme vous le déclarer. J'ai eu à déclarer d'abord, puis les affecter à l'aide defindViewById
.OriginalL'auteur Jacob Stevens