-2

ビューを切り替えようとしていますが、2 番目のビューにいると、バック イベントのクリックが機能しません。何が問題なのかわかりません。

Pls、私のコードを見て、私を助けてください!

パート1

パート2

public class t extends Activity implements OnClickListener {
   Button volta;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.janela2);

      volta = (Button) findViewById(R.id.button2);
      volta.setOnClickListener(this);

   }

   @Override
   public void onClick(View v) {
      if (v == volta) {
         startActivity(new Intent(t.this, MainActivity.class));
      }
   }
}
4

4 に答える 4

1

次のコードを実行するだけで、お役に立てば幸いです

MainActivity.java

public class MainActivity extends Activity { 

    @Override
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            Button sobre = (Button) findViewById(R.id.button1);
            sobre.setOnClickListener(new OnClickListener() {
               public void onClick(View v) {

               Intent intent = new Intent(MainActivity.this, t.class);
               startActivity(intent);
               }
           });
    }
 }

t.java で

public class t extends Activity{

    Button volta;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.janela2);
    }

 @Override
 public void onStop() {
    super.onStop();
    finish();
 }
}
于 2012-12-21T17:44:46.517 に答える
1

2 つのレイアウトが必要な場合は、viewflipper を使用します。2 つのアクティビティ (Java クラス) と 2 つのレイアウトを別々に使用する場合は、次を使用します。

Intent i = new Intent (this, myClass.class);
startActivity(i);

コンテンツビューを設定せずにアクティビティを開始するには

だからここに:

public void onClick(View v) {
                       startActivity(new Intent (MainActivity.this, t.class));
                                         OR IN THE CASE OF T.CLASS:
                       startActivity(new Intent (t.this, MainActivity.class));
               }
于 2012-12-21T17:08:27.297 に答える
1

onBackPressed をオーバーライドする必要があります。以下のように MainActivity を変更します

public class MainActivity extends Activity {

        private boolean goBack = false;           


        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);



                Button sobre = (Button) findViewById(R.id.button1);
                  sobre.setOnClickListener(new OnClickListener() {
                   public void onClick(View v) {
                           goBack = true;
                           setContentView(R.layout.janela2);
                   }
                   });


        }

        @Override
        public void onBackPressed() {
        //If you have switched to R.layout.janela2 then go back
        if (goBack){
            setContentView(R.layout.activity_main);
            goBack = false;
            return;
            }
        //else do default action
        super.onBackPressed();
        }
}
于 2012-12-21T17:15:46.810 に答える
0

onBackPressed()アプリケーションでボタン機能を元に戻したい場合は、メソッドをオーバーライド する必要があります。すなわち

public void onBackPressed() {

     Intent start = new Intent(CurrentClass.this,Next_Activity.class);
      startActivity(start);
     finishActivity(0);
 }
于 2012-12-21T17:20:05.727 に答える