0

私は友人バンドのアプリを作成しており、parse というクラウド ストレージ API を使用しています。クラウドから文字列を取得して、編集テキストに表示しようとしています。そのアイデアは、テキストを必要なものにしてからデータベースにアップロードすることです。私はそれを行うことができますが、テキストを変更して電話を水平にしてから垂直に戻すと、編集が削除されます。さらに、その特定のレイアウトでタッチが機能しなくなったようです。TabHost があり、タブの切り替えは正常に機能しますが、ボタンをクリックしようとすると何も表示されず、EditText でカーソルを移動することもできません。ボタンの onClick メソッド内にブレークポイントとトーストを配置しましたが、何も起動されません。何が起こっているのかわかりません。助けてください!

ジャワ

package com.example.undaunted.admin;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RelativeLayout;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
import android.widget.Toast;

import com.parse.GetCallback;
import com.parse.Parse;
import com.parse.ParseException;
import com.parse.ParseFile;
import com.parse.ParseObject;
import com.parse.ParseQuery;
import com.parse.SaveCallback;

public class UndauntedAdminMain extends Activity {
TabHost tabHost;
Button saveWelcomeText;
EditText welcomeText;
ParseFile file;
ParseObject welcomeTextObject;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.undaunted_main);
    welcomeText = (EditText) findViewById(R.id.editText1);
    Parse.initialize(this, "REMOVED",
            "REMOVED");
    initialize();

}

public void initialize() {
    tabHost = (TabHost) findViewById(R.id.tabHost);
    tabHost.setup();

    TabSpec spec = tabHost.newTabSpec("Welcome");

    spec.setContent(R.id.welcomeTab);
    spec.setIndicator("Welcome");
    tabHost.addTab(spec);

    TabSpec spec3 = tabHost.newTabSpec("Biographies")
            .setContent(R.id.biographyTab).setIndicator("Biographies");
    tabHost.addTab(spec3);
    // tabHost.newTabSpec("Biographies").setIndicator("Biographies").setContent();
    TabSpec spec2 = tabHost.newTabSpec("Gallery");
    RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.galleryTab);
    relativeLayout.setBackgroundColor(Color.BLACK);
    spec2.setContent(R.id.galleryTab);
    spec2.setIndicator("Gallery");
    tabHost.addTab(spec2);

    ParseQuery query2;
    query2 = new ParseQuery("Welcome");
    query2.getInBackground("fdZL8G4PIk", new GetCallback() {

        @Override
        public void done(ParseObject arg0, ParseException arg1) {
            // TODO Auto-generated method stub
            if (arg1 == null) {
                // welcomeTextObject = arg0;

                // welcomeText.setText(welcomeTextObject.getString(
                // "WelcomeText").toString());
            } else {
                welcomeText.setText("Failed to load data");
            }

        }
    });

    saveWelcomeText = (Button) findViewById(R.id.saveWelcomeText);
    saveWelcomeText.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub

            welcomeTextObject.saveInBackground(new SaveCallback() {

                @Override
                public void done(ParseException arg0) {
                    // TODO Auto-generated method stub
                    welcomeTextObject.put("WelcomeText",
                            welcomeText.getText());

                    welcomeTextObject.saveInBackground();
                    Toast.makeText(getApplicationContext(), "Data sent",
                            Toast.LENGTH_SHORT).show();

                }
            });
        }
    });
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_undaunted_admin_main, menu);
    return true;
}

}

XML

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/tabHost" >

    <LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical">

        <TabWidget 
            android:id="@+android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>

        <FrameLayout 
            android:id="@+android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">

            <RelativeLayout
                android:id="@+id/welcomeTab"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" 
                android:orientation="vertical">

                    <Button
                        android:id="@+id/saveWelcomeText"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentBottom="true"
                        android:layout_centerHorizontal="true"
                        android:text="Save" />

                    <EditText
                        android:id="@+id/editText1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:layout_alignParentRight="true"
                        android:layout_alignParentTop="true"
                        android:ems="10" >

                        <requestFocus />
                    </EditText>

            </RelativeLayout>    


                   <RelativeLayout 
                android:id="@+id/galleryTab"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">


                </RelativeLayout>

         <RelativeLayout
             android:id="@+id/biographyTab"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content">

             <ListView
                 android:id="@+id/memberList"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:layout_alignParentTop="true"
                 android:layout_above="@+id/biographyTab"/>
                </RelativeLayout>

         <RelativeLayout 
             android:id="@+id/showDatesTab"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent"
             android:orientation="vertical">

             <ListView 
                 android:id="@+id/showDateList"
                 android:layout_height="fill_parent"
                 android:layout_width="fill_parent"
                 android:layout_alignParentTop="true"
                 android:layout_above="@+id/showDatesTab">
             </ListView>

         </RelativeLayout>
         </FrameLayout>
    </LinearLayout>
</TabHost>

詳細については、Parse というクラウド ストレージ ライブラリを使用しています。ここにいる誰かがそれに精通しているかどうか、または干渉している可能性があるかどうかはわかりませんが、助けていただければ幸いです. ありがとう!

4

2 に答える 2

0

中身を削除しinitialize()、コードをメソッド内に直接配置しますonCreate()。なぜこれが発生するのかわかりませんが、この正確な問題に遭遇し、これを行うことで役に立ちました。

于 2012-08-21T04:02:16.087 に答える
0

それを私が直した!TabHost で使用されていない RelativeLayout があったため、ビューが壊れました。レイアウトを TabHost に追加したところ、すべてが機能するようになりました!

于 2012-08-21T21:23:00.263 に答える