问题:

Android: couldn't save which view has focus because the focused view ### has no id


可能引起原因有两种,对应解决方法如下:

解决方案一:

<application

        android:icon="@drawable/icon" android:label="@string/app_name" >

        <activity

            android:label="@string/app_name"

           android:configChanges="orientation|keyboardHidden|keyboard|screenLayout" 

            android:name=".Main" >

            <intent-filter >

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>


解决方案二:

What probably happened is that you created a thread in the surfaceCreated() method but didn’t stop it or get rid of it in the surfaceDestroy() method.

When you didn’t give a theme for the preferences, it took over the whole screen and your old surface was destroyed. But when you specified a dialog-like theme, the old surface was still there because it was visible underneath the preferences.

 public void surfaceCreated(SurfaceHolder holder)

{

  if (_thread == null || _thread.getState() == Thread.State.TERMINATED)

  {

    _thread = new TutorialThread(getHolder(), this);

    _thread.setRunning(true);

    _thread.start();

  }

  else

  {

    _thread.setRunning(true);

    _thread.start();

  } 

}

This solved the problem for me, a thread’s start method cannot be called twice, so I had to reallocate…