0
    attribute=(TextView) findViewById(R.id.textview1);
    dataAttribute=(TextView) findViewById(R.id.textview2);

            attribute.setClickable(true);
            attribute.setOnClickListener(this);


            dataattribute.setClickable(true);
            dataattribute.setOnClickListener(this);

    //dataAttribute.setOnClickListener(new OnClickListener(){

        //@Override
        //public void onClick(View v) {
            // TODO Auto-generated method stub
            //setContentView(R.layout.activity_main);
        //}
    //});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}
public void onClick(View v)
{

    if(v==attribute)
    {
        setContentView(R.layout.second_activity);
    }
    if(v==dataattribute)
    {
         setContentView(R.layout.main_activity);

    }
}

初心者の質問で申し訳ありませんが、私の問題は

1- main_activity.xml と 2- second_activity.xml の 2 つのレイアウトがあります。最初の TextView をクリックした後、2 番目のレイアウトを設定しますが、2 番目のテキストをクリックすると main_activity.xml レイアウトが表示されません。

4

1 に答える 1

0

おそらく次のようにする必要があります。

public void onClick(View v)
{
    switch (v.getId()){
    case R.id.textview1:
        setContentView(R.layout.second_activity);
        dataAttribute=(TextView) findViewById(R.id.textview2);
        dataAttribute.setClickable(true);
        dataAttribute.setOnClickListener(this);

        break;
    case R.id.textview2:
        setContentView(R.layout.main_activity);
        break;
    }
}

以前に行っていたのは、オブジェクトへの参照を比較することでした。これは、特定の条件下では (参照が同じ場合) 機能する可能性がありますが、通常は機能しないため、ロジックの問題が発生します。idビューの比較は、それを行う適切な方法です。textView2それは他のxmlファイルにあったため、あなたも見つけていませんでした。

于 2012-12-31T17:58:26.467 に答える