1

アンドロイドで。私の活動はこんな感じです。

public class MainActivity extends Activity {

   static TextView textview;
   static int aaa = 1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
    setContentView(R.layout.activity_main);

             textview = (TextView)findViewById(R.id.textView6);

//その他のメソッド、startservice() など。

また、サービスからフラグを受け取る BroadcastReceiver があります。

     public static class Receiver extends BroadcastReceiver{

    @Override
    public void onReceive(Context context, Intent intents) {
        intents.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        textview.setText("set")//throw null point
                    Log.d("aaa","aaa is" + aaa);

このように、onReceiver では、textview は null です。テストとして、int aaa は null ではありません。

なぜテキストビューはnullですか?

EDIT Texttiew xmlは

<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=".MainActivity" >
 <TextView
        android:id="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/adview"
        android:layout_alignParentLeft="true"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge" />

また、同じ textview.settext を使用するアクティビティのメソッドは null ではありません。ありがとう。

EDIT2 この変数を保存する必要があることがわかります。では、VIEW変数を保存する最良の方法は何ですか? SharedPreferences は VIEW 変数を保存できないようです。

4

2 に答える 2

1

このスレッドは、静的フィールドを持つことが問題になる可能性があることを示しています。一般に、Android はアプリを強制終了し、戻り時に静的変数が設定されない場合があります。

アプリに戻るときの静的変数 null

于 2013-02-09T02:27:48.240 に答える
0

これは、正しい textview 要素を参照していない可能性があります。レイアウト ファイルで ID を再確認してください。

于 2013-02-09T01:51:24.183 に答える