Modifier Android TextView après avoir gonflé une autre vue
-
11-12-2019 - |
Question
Bonjour, j'essaie de changer de TextView dans une vue gonflée, mais l'application se bloque.
Qu'est-ce que j'essaie de faire est de remplir les vues de texte avec le contenu des variables Hometam et d'Awardteam Ces variables ne sont pas NULL, car lorsque je leur connecte les noms.
Donc, ma question est de savoir comment modifier une vue texte et remplacer son contenu
Heres ce que j'ai essayé
for(int t = 0; t < 1; t++){
resultsDict = jArray.getJSONObject(t);
String HomeTeam = resultsDict.getString("hometeam");
String AwayTeam = resultsDict.getString("awayteam");
Log.v("lc","hometeam" + HomeTeam);
Log.v("lc","awayteam" + AwayTeam);
}
resultsView = LayoutInflater.from(getBaseContext()).inflate(R.layout.resultscell,
null);
TextView homeTeam = (TextView) findViewById(R.id.HomeTeam);
homeTeam.setText(HomeTeam);
la vue gonflée
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:padding="20dp" >
<TextView
android:id="@+id/TextView04"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="-"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/blue"
android:textStyle="bold"
/>
<TextView
android:id="@+id/HomeScore"
android:layout_width="20dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/TextView04"
android:text="0"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/blue"
android:textStyle="bold"
/>
<TextView
android:id="@+id/AwayScore"
android:layout_width="20dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/TextView04"
android:text="0"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/blue"
android:textStyle="bold"
/>
<TextView
android:id="@+id/AwayTeam"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/AwayScore"
android:layout_marginLeft="14dp"
android:layout_toRightOf="@+id/AwayScore"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/blue"
android:textStyle="bold"
/>
<TextView
android:id="@+id/HomeTeam"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/HomeScore"
android:layout_alignBottom="@+id/HomeScore"
android:layout_alignParentLeft="true"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/blue"
android:textStyle="bold"
/>
</RelativeLayout>
Heres l'erreur
05-18 13:55:57.552: E/AndroidRuntime(3987): java.lang.RuntimeException: Unable to start activity ComponentInfo{co.uk.myApp.MyApp/co.uk.myApp.MyApp.HomeActivity}: java.lang.NullPointerException
05-18 13:55:57.552: E/AndroidRuntime(3987): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1821)
05-18 13:55:57.552: E/AndroidRuntime(3987): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1842)
05-18 13:55:57.552: E/AndroidRuntime(3987): at android.app.ActivityThread.access$1500(ActivityThread.java:132)
05-18 13:55:57.552: E/AndroidRuntime(3987): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1038)
05-18 13:55:57.552: E/AndroidRuntime(3987): at android.os.Handler.dispatchMessage(Handler.java:99)
05-18 13:55:57.552: E/AndroidRuntime(3987): at android.os.Looper.loop(Looper.java:143)
05-18 13:55:57.552: E/AndroidRuntime(3987): at android.app.ActivityThread.main(ActivityThread.java:4263)
05-18 13:55:57.552: E/AndroidRuntime(3987): at java.lang.reflect.Method.invokeNative(Native Method)
05-18 13:55:57.552: E/AndroidRuntime(3987): at java.lang.reflect.Method.invoke(Method.java:507)
05-18 13:55:57.552: E/AndroidRuntime(3987): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-18 13:55:57.552: E/AndroidRuntime(3987): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-18 13:55:57.552: E/AndroidRuntime(3987): at dalvik.system.NativeStart.main(Native Method)
05-18 13:55:57.552: E/AndroidRuntime(3987): Caused by: java.lang.NullPointerException
05-18 13:55:57.552: E/AndroidRuntime(3987): at co.uk.myApp.MyApp.HomeActivity.onCreate(HomeActivity.java:576)
05-18 13:55:57.552: E/AndroidRuntime(3987): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1072)
05-18 13:55:57.552: E/AndroidRuntime(3987): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1785)
La solution
Vous devez changer:
TextView homeTeam = (TextView) findViewById(R.id.HomeTeam);
à ceci:
TextView homeTeam = (TextView) resultsView.findViewById(R.id.HomeTeam);
pourquoi?Parce que hometam est disponible dans votre vue gonflée.Donc, vous devez vous référer à votre point de vue gonflé / groupe de vitesses lorsque vous trouvez la vue enfant
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow