0

昨日、Android用の卓上時計を作成しました。このために、時間、分などを表示する RelativeLayout を作成し、About および Exit オプションを表示するメニューを作成しました。すべて正常に動作しますが、About Option をクリックすると問題が発生します。 LogCat はこれを示しています。

E/AndroidRuntime(14751): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.iamaner.T2Speech/com.iamaner.T2Speech.FrmAbout}: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

だから私はあなたが私を助けてくれることを願っています...私はこのコードについて聞いたことがありますが、どこにどのように配置すればよいかわかりません。

final RelativeLayout fondo = (RelativeLayout)findViewById(R.id.your_layout);((RelativeLayout)fondo.getParent()).removeView(fondo); //scrollView.removeView(scrollChildLayout);

これが問題だと思うマニフェストファイルです。わかりません:

    <application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:name=".TimeToSpeechActivity"
        android:label="@string/app_name"
        android:screenOrientation="landscape" 
        android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

     <activity android:name=".FrmAbout" />
</application>

ここでは、FrmAbout コード:

 public class FrmAbout extends Activity {

 @Override
 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.frmabout);

    TextView txtVersion = (TextView)findViewById(R.id.Txtversion);
    TextView txtWarning = (TextView)findViewById(R.id.Txtwarning);
    TextView txtInstructions = (TextView)findViewById(R.id.Txtinstructions);
    TextView txtContact = (TextView)findViewById(R.id.Txtcontact);

    setContentView(txtVersion);
    setContentView(txtWarning);
    setContentView(txtInstructions);
    setContentView(txtContact);

     }
     }

わかりました、解決しました....問題は setcontentview() メソッドで、それを削除しましたが、今は動作します

4

1 に答える 1

0

あなたのコードから私は理解できませんでした About アクティビティを呼び出す前にすべてのビューを削除するのはなぜですか? 新しいアクティビティを開始するためにすべてのビューを削除する必要がないため、これは要件のいずれかです。現在のアクティビティからビューを削除せずに、startActivity(intent) を直接呼び出すことができます。

問題を理解するためにログを投稿してください。

于 2012-05-01T11:39:16.283 に答える