2011-10-24 6 views
1

現在、2つの異なるXMLファイルにアクセスする2つのアクティビティファイルを1つのビューから別のビューに変更するため、後で別のインターフェイスを追加できます。しかし、ビューは私が望むほど速く変化せず、切り替えはかなり遅いです。相対的なレイアウトを使用し、ランタイム中に1つの可視性を変更して別のユーザーインターフェイスを表示することは、よりスムーズな移行であると判断しました。Eclipseでアンドロイドプロジェクトの実行時に特定の相対レイアウトの可視性を変更する

しかし、複数の例を使用していますが、私はまだ滑らかな移行を作成していません。私のトリガーは、私がボタンを使ってアクティビティを切り替えるために使用しているコードです(これはアンドロイドで実行するとプロジェクトの現在の状態には表示されません)。

アンドロイドのバージョンは2.2です。私は、 "Page1"アクティビティのJavaコードを使用して相対レイアウトの可視性を "INVISIBLE"に変更しようとしています。私は複数の例を見てきましたが、私はこの仕事をするために必要な情報を私に与えるのに十分なものはありませんでした。 Android用に作成したすべてのプロジェクトでこの機能を使用する予定です。プレゼンテーションに役立つので、他の開発者にとっても役立つと思います。

私はコードが出て残っていないと、状況は完全にクリアされていることを確認するために、次のアドレスに私のプロジェクトを掲載している:

https://sites.google.com/site/elynxus102/projectandroid.zip?attredirects=0&d=1

それは、「ページが見つかりません」と言うだろう。しかし、言うサイトにリンクがありprojectandroid.zip

私も言及おそらくべきである私は、Eclipse 1.41を使用して、以下のプラグインだ:

のAndroid DDMS 14.0.0.v201110171935- 205994の

のAndroid開発ツール14.0.0.v201110171935-205994

Androidの階層ビューア14.0.0.v201110171935-205994

アンドロイドTraceview 14.0.0.v201110 171935-205994

Google App EngineのJavaのSDK 1.5.5 1.5.5.r37v201110112027

のEclipse 3.7 2.4.2.relr37v201110112027

GoogleウェブツールキットSDK 2.4.0 2.4.0.relr37v201110112027のためのGoogleプラグイン

SWTデザイナー1.1.0.r37x201109091152

VEX SDK(インキュベート)1.0.0.201105031353

VexのXMLエディtor(インキュベート)1.0.0.201105031353

答えて

0

2つのレイアウトを保存するために相対レイアウトを使用していません。これは、ViewSwitcherを使用してください。

あなたはあなたのonCreate()よりも、UIエディタを使用している場合は合理的である2つのレイアウトファイル、持っている場合:

public class SwitcherActivity extends Activity implements View.OnClickListener{ 

    private ViewSwitcher viewSwitcher; 
    private Button showSecondButton; 
    private Button showFirstButton; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     viewSwitcher = new ViewSwitcher(this); 
     viewSwitcher.addView(getLayoutInflater().inflate(R.layout.first, null)); 
     viewSwitcher.addView(getLayoutInflater().inflate(R.layout.second, null)); 
     setContentView(viewSwitcher); 

     showSecondButton = (Button) findViewById(R.id.showSecondButton); 
     showSecondButton.setOnClickListener(this); 
     showFirstButton = (Button) findViewById(R.id.showFirstButton); 
     showFirstButton.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View v) { 
     if ((v.getId() == R.id.showFirstButton)&&(viewSwitcher.getDisplayedChild()==1)) { 
     viewSwitcher.showPrevious(); 
     } else if ((v.getId() == R.id.showSecondButton)&&(viewSwitcher.getDisplayedChild()==0)) { 
     viewSwitcher.showNext(); 
     } 
    } 
} 

あなたはボタンの前のプレスでビューを切り替えることができますこの方法を/あなたのページのレイアウトに含めるべき次のボタン。もちろんこれは一例に過ぎず、サーバー、ジェスチャー、タイムアウトなどの結果を受け取るような他のイベントを発生させることができます。

+0

これは私の質問に近い回答でしたが、それが実行時に動作するようにするにはまだ欠けています。実行時にどのように動作するか、電子メールで送信する方法を示すソースコードの例を含めることができますか? (私の元のコードを好きなように変更することができます)インターネット上でこの質問を何度も見てきましたが、ウィジェットの堅実な例はまれな発見であると思われますので、他のプログラマーにとっては便利だと思います。私のメールアドレスは[email protected]です。 – Matthew

+0

レスポンスを編集しましたが、これはうまくいくはずです。 –

+0

これですべてを入れ、XMLコードにviewswitcherを追加し、プロジェクトに合わせてコードを修正しました。しかし、私はプログラムにもう一つ誤りがあるようです。具体的には、次のようなエラーが表示されます。 "ViewAnimatorタイプから非静的メソッドshow Previous()への静的参照を作成できません"この行は次のようになります。ViewSwitcher.showPrevious();ここに新しいファイルへのリンクがあります。 https://sites.google.com/site/androidattache/version2android – Matthew

関連する問題