android spinner-onItemSelected
Je suis un Débutant. J'ai un problème avec un spinner. Je veux créer un spinner en utilisant onItemSelected méthode et à l'affichage de sélection de spinner élément dans TextView
Mais mon programme n'est pas en cours d'exécution dans l'émulateur. il est dit "Programme arrêté"..
quelle a été mon erreur dans le programme ci-dessous. Pls m'aider.. Merci U..
Mon SpinOnItemActivity.java
package spinner.onitemsel;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;
import android.view.View.OnClickListener;
public class SpinOnItemActivity extends Activity
{
Spinner sp= (Spinner) findViewById(R.id.spin);;
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.spinner_array , android.R.layout.simple_spinner_item);
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spin_on_item );
sp.performClick();
}
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp.setAdapter(adapter);
String Name = (String) sp.getSelectedItem();
TextView tview1 = (TextView)findViewById(R.id.testtxt );
tview1.setText(Name);
}
}
Mon activity_spin_on_item.xml fichier
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SpinActivity" >
<Spinner
android:id="@+id/spin"
android:layout_width="149dp"
android:layout_height="66dp"
android:layout_alignBottom="@+id/button1"
android:layout_alignParentLeft="true"
android:layout_alignRight="@+id/testtxt"
android:layout_gravity="top" />
<TextView
android:id="@+id/testtxt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/testtxt2"
android:layout_centerHorizontal="true"
android:layout_marginBottom="44dp"
android:gravity="bottom"
android:text="Spin Txt" />
</RelativeLayout>
Mon logcat Rapport
12-10 09:58:40.988: W/Trace(837): Unexpected value from nativeGetEnabledTags: 0
12-10 09:58:41.168: W/Trace(837): Unexpected value from nativeGetEnabledTags: 0
12-10 09:58:41.198: W/Trace(837): Unexpected value from nativeGetEnabledTags: 0
12-10 09:58:41.878: D/dalvikvm(837): GC_CONCURRENT freed 51K, 6% free 2830K/2996K, paused 12ms+3ms, total 56ms
12-10 09:58:41.878: D/dalvikvm(837): WAIT_FOR_CONCURRENT_GC blocked 25ms
12-10 09:58:41.968: D/AndroidRuntime(837): Shutting down VM
12-10 09:58:41.968: W/dalvikvm(837): threadid=1: thread exiting with uncaught exception (group=0x40a70930)
12-10 09:58:41.988: E/AndroidRuntime(837): FATAL EXCEPTION: main
12-10 09:58:41.988: E/AndroidRuntime(837): java.lang.RuntimeException: Unable to start activity ComponentInfo{spinner.onitemsel/spinner.onitemsel.SpinOnItemActivity}: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?
12-10 09:58:41.988: E/AndroidRuntime(837): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.app.ActivityThread.access$600(ActivityThread.java:141)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.os.Handler.dispatchMessage(Handler.java:99)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.os.Looper.loop(Looper.java:137)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.app.ActivityThread.main(ActivityThread.java:5039)
12-10 09:58:41.988: E/AndroidRuntime(837): at java.lang.reflect.Method.invokeNative(Native Method)
12-10 09:58:41.988: E/AndroidRuntime(837): at java.lang.reflect.Method.invoke(Method.java:511)
12-10 09:58:41.988: E/AndroidRuntime(837): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
12-10 09:58:41.988: E/AndroidRuntime(837): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
12-10 09:58:41.988: E/AndroidRuntime(837): at dalvik.system.NativeStart.main(Native Method)
12-10 09:58:41.988: E/AndroidRuntime(837): Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?
12-10 09:58:41.988: E/AndroidRuntime(837): at android.view.ViewRootImpl.setView(ViewRootImpl.java:567)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:246)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.widget.PopupWindow.invokePopup(PopupWindow.java:993)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.widget.PopupWindow.showAsDropDown(PopupWindow.java:899)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.widget.ListPopupWindow.show(ListPopupWindow.java:603)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.widget.Spinner$DropdownPopup.show(Spinner.java:981)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.widget.Spinner.performClick(Spinner.java:609)
12-10 09:58:41.988: E/AndroidRuntime(837): at spinner.onitemsel.SpinOnItemActivity.onCreate(SpinOnItemActivity.java:35)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.app.Activity.performCreate(Activity.java:5104)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
12-10 09:58:41.988: E/AndroidRuntime(837): ... 11 more
12-10 10:03:42.109: I/Process(837): Sending signal. PID: 837 SIG: 9
Édité mon Code: Pls Vérifier..
package spinner.onitemsel;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
public class SpinOnItemActivity extends Activity
{
ArrayAdapter<CharSequence> adapter;
Spinner sp;
TextView tview1;
int length;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spin_on_item );
sp= (Spinner) findViewById(R.id.spin);
adapter = ArrayAdapter.createFromResource(this, R.array.spinner_array , android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp.setAdapter(adapter);
sp.performClick();
}
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
String Name = (String) sp.getSelectedItem();
tview1 = (TextView)findViewById(R.id.testtxt );
tview1.setText(Name);
}
}
- publier vos logcat rapport d'erreur
- j'ai joint mon logcat rapport.. svp aider moi..
- ji.. comme ur mise à jour.. maintenant j'ai 2 erreurs.. 1.spin ne peut pas être résolu ou n'est pas un terrain de 2. testtxt ne peut pas être résolu ou n'est pas un champ de mais R.java.. itz présents.. public static final int spin=0x7f070000; public static final int testtxt=0x7f070002; wat faire
- user370305 enfin..comme ur de code mis à jour, j'ai eu spinner sortie.. mais textview toujours pas d'affichage de l'élément sélectionné à partir de spinner.. svp aider moi..
Vous devez vous connecter pour publier un commentaire.
Fait votre
Spinner sp
est null, de Sorte que lorsque la ligne de codesp.performClick();
est exécuté dansonCreate()
l'application se bloque avecNull Pointer Exception
.Parce que vous êtes la définition
Spinner sp
au-dessus deonCreate()
si android ne trouve pas leSpinner sp
de Mise en page Xml fichier. Il devrait être aprèssetContentView()
donc android coquille de noix est une référence de l'Spinner pour une Activité particulière.Solution:
Mettre ces lignes,
dans
onCreate()
de l'Activité aprèssetContentView(R.layout.activity_spin_on_item );
Quelque chose comme,
Mise à jour:2
De votre
activity_spin_on_item.xml
Fichier.Regarder Balise Parent,
Dans ce que l'attribut
devrait être
tools:context=".SpinOnItemActivity"
OnItemSelectedListener
dans votre activité. Regardez ce tutoriel developer.android.com/guide/topics/ui/controls/spinner.html . Et enregistrer spinner pour elle. comme,spinner.setOnItemSelectedListener(this);
viendra à l'intérieur de votre
onCreate()
méthode aprèssetContentView()
Edit:
Puis
sera également
onCreate()
méthode aprèssetContentView()
Edit:
TextView
il n'est pas nécessaire, OP pouvez mettre la ligne aprèsonCreate()
une foissetContentView()
appelé.