2010-11-25 20 views
0

私はAndroidにJ2MEアプリケーションを移植していますが、今問題はGUIにあります。私が見たものについては 、Androidの活動は素晴らしいですが、私のJ2MEは、古典的で満たされている:Androidでスイッチ表示可能

public void switchDisplayable(Alert alert, Displayable nextDisplayable) { 
     Display display = getDisplay(); 
     if (alert == null) 
      display.setCurrent(nextDisplayable); 
     else 
      display.setCurrent(alert, nextDisplayable); 
} 

私はちょうど活動へのすべてが表示可能にすることはできませんので、私はビューに置き換える考えました。私はそれを試みたが、それは動作しません、アプリは画面を変更しません。

更新:答えるため

おかげで、しかしでframeLayoutと、まだ何も内部のアルvewsを置きます。クリック時の後

public class TestActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState);   
     setContentView(R.layout.main); 
     TextView t = (TextView)findViewById(R.id.text); // Shows "Hi" 
     showDialog(); // it just shows a dialog asking if the user wants to change screen 

    } 
    showDialog() { 
     // in OnClick()... i do the following, and here is where it fails, i tried so far:   
     TestView testv= new MarcoLoco(MFActivity.this); 
    setContentView(testv); 
     testv.invalidate(); 
    testv.requestFocus(); 
    testv.showMeSomething(); 
    } 


public class TestView extends View{ 
    private Context context; 
    TextView tv;  
    public TestView(Context context) { 
     super(context); 
     this.context=context; 
    } 
    public void showMeSomething() { 
     tv = (TextView)findViewById(R.id.tessto); // it should show "Bye" 
    } 
} 

画面から「こんにちは」。消えるが、何も「バイバイ」いいえ、表示されません:あなたはそれをチェックアウトすることができますので、これは、私のテストコードの中核です。

なぜ、ああ、なぜ!

答えて

0

は、私は、Java MEとの任意のexpirienceを持っていないが、これは

あなたに役立つ、あなたは切り抜いたビューを切り替えるために

mViewA.setVisibility(View.VISIBLE); 
mViewB.setVisibility(View.GONE); 
mViewA.requestFocus(); 

を使用することができますFrameLayout内のあなたの見解を置くかもしれない

EDIT:

2つのテキストビューを切り替える簡単なプログラムです:

public class test extends Activity { 
    boolean showTV1 = true; 

    OnClickListener ocl = new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      showTV1= !showTV1; 
      if (showTV1){ 
       tv1.setVisibility(View.VISIBLE); 
       tv2.setVisibility(View.GONE); 
       tv1.requestFocus(); 
      } else { 
       tv2.setVisibility(View.VISIBLE); 
       tv1.setVisibility(View.GONE); 
       tv2.requestFocus(); 
      } 
     } 
    }; 

    private TextView tv1, tv2; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     tv1 = (TextView) findViewById(R.id.TextView01); 
     tv2 = (TextView) findViewById(R.id.TextView02); 

     tv1.setOnClickListener(ocl); 
     tv2.setOnClickListener(ocl); 
    } 
} 

main.xml

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/frameLayout01" android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 
    <TextView android:id="@+id/TextView01" android:layout_width="fill_parent" 
     android:layout_height="fill_parent" android:background="#0f0" 
     android:text="Hi" /> 
    <TextView android:id="@+id/TextView02" android:layout_width="fill_parent" 
     android:layout_height="fill_parent" android:background="#f00" 
     android:text="Bye" android:visibility="gone"/> 
</FrameLayout> 
+0

お返事ありがとうございます!それはまだ動作しません、私はあなたがすべてそれを見ることができるようにコードスニペットを追加しました。 – ferostar

+0

@Peter 2つのテキストビューの間でトグルする短いサンプルプログラムを追加しました – getekha

+0

ありがとう@getekha、それは素晴らしい、私は別のクラスではなく、xmlではなく、クラスを拡張するビューに切り替えるときに問題があるビュー。 – ferostar

0

私は、私は完全にあなたの質問を理解していないですが、ViewAnimatorViewFlipperを見てみてください - おそらくこれらは

PSを助けることができます。好奇心の外に...あなたは自動コンバーターを試しましたか?

+0

私の問題は、 "元の" XML定義のビューから別のビューに "MyView extends View"を実行時にスワスしようとすると、何も表示されません。最初のビューは消えますが、2番目のビューは表示されません。 – ferostar

0

なぜ変換ツールを使用するのではなく、J2MEからAndroidに移植するのですか? Androidで学習して習得する必要はなく、2つのコードベースをデバッグして維持する必要はありません... www.UpOnTek.comで試してみてください。ありがとう。

関連する問題