0

シンプルなアプリを作っています。そしてそれは私の最初のアプリでもあります...

メニュー付きのアクティビティがあり、テーブル行に各メニューオプションを作成しました。各テーブル行には、[画像]ボタンと[テキストの説明]が含まれています。各テーブル行をクリックすると、別のアクティビティに移動したいと思います。それ、どうやったら出来るの??

また、単一のクラスファイルを使用して複数のレイアウトファイルを表示することは可能ですか(つまり、各メニューのコンテンツに対して)?

または

tableRow以外に、このようなメニューを作成し、それを使用して別のアクティビティに移動する方法はありますか?

4

3 に答える 3

1

まず、テーブルの行をクリックして、別のアクティビティに移動する方法を見てみましょう。XMLファイルプロパティのテーブル行で、次の構文を指定します。

android:onClick="onClick"

次に、createメソッドの直後のアクティビティにこの行を入力します

public void onClick(View v){

 Intent intent=new Intent(v.getContext(),newActivityname.class);
 startActivityForResult(intent,0);

}

これを行うと、テーブルの行をクリックすると、uは別のアクティビティ名にリダイレクトされますnewActivityname

第二に、はい、あなたはある条件に基づいて同じ活動のために異なるレイアウトファイルを設定することができます。たとえば、このようにするよりも整数値の条件に従ってレイアウトファイルを配置したい場合

int flag=0;

if(flag==0){
  setContentView(R.layout.xml1);
}
if(flag==0){
      setContentView(R.layout.xml2);
    }
if(flag==1){
      setContentView(R.layout.xml3);
    }
if(flag==3){
      setContentView(R.layout.xml4);
    }

このように、いくつかの条件に基づいて、レイアウトを設定できます。

3番目のクエリについては、より具体的に回答してください。

于 2012-06-29T09:59:10.907 に答える
0

xmlでTableRowにidを指定してから、onClickで以下のコードのような次のアクティビティを呼び出すことができます。次のアクティビティでは、前のインテントから渡された値を使用して、単純なif-elseロジックでsetcontentview()メソッドを処理できます(例: rowId = 1(最初の行など)および必要なレイアウトを設定すると、これが役立つ場合があります。

TableRow tableRow=(TableRow)findViewById(R.id.LayoutFirstRow);
tableRow.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        startActivity(new Intent(presentActivity.this, destinationActivity.class));             
    }
});
于 2012-06-29T09:58:47.083 に答える
0

次のようにしてみてください:

TableRow tablerow = new TableRow(this);
tablerow.setId(2000+i); //set id here
tablerow.setOnClickListener(getOnClickTableRow(tablerow));
//your code...

View.OnClickListener getOnClickTableRow(final TableRow tablerow)  {
    return new View.OnClickListener() {
        public void onClick(View v) {

            //START ACITIVYT HERE
             Intent intent=new Intent(CURRENT_ACTIVITY.this,Activityname.class);
             startActivity(intent);
        }
    };
}
于 2012-06-29T10:04:57.313 に答える