0

こんにちは、私は最近、私のアプリについて質問をしましたが、私の画像がビットマップ ファクトリで適切に処理されていないため、ここの善良な人々が強制終了することを知りましたが、アマチュアとして、コードが適切であることを確認するために画像を取り出すことにしました....そうではない

私が欲しかったのは、4つのボタンをリストするセカンドアクティビティを開くためのメインです

私が持っているのは、メインが2番目のアクティビティをスキップして、あなたもお風呂のアクティビティに連れて行ってくれることです。押し上げると、2番目のアクティビティにもかかりますが、ここのボタンは何もしません

しかし、コードにエラーはなく、アプリが強制終了することもないので、コードまたは logcat も投稿するだけですか?

任意の助けをいただければ幸いです

main.java

package com.example.myapplication;

import android.content.Intent;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
 import android.widget.EditText;


public class main extends Activity {
Button ok;
EditText name;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    name=(EditText)findViewById(R.id.editText);
    ok=(Button)findViewById(R.id.button);

    ok.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            String nameStr = name.getText().toString();

            Intent intent = new Intent(getApplicationContext(), secondactivity.class);
            intent.putExtra("NAMEDATA",nameStr);
            startActivity(intent);

        }
    });


}



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

}

セカンドアクティビティ.java

package com.example.myapplication;

import android.content.Intent;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.Button;
import android.widget.TextView;

public class secondactivity extends Activity {
TextView t;
Button button;
Button button2;
Button button3;
Button button4;






@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);
    t = (TextView)findViewById(R.id.textView3);
    String n = this.getIntent().getStringExtra("NAMEDATA");
    t.setText(n);

    button = (Button)findViewById(R.id.button);
    button2 = (Button)findViewById(R.id.button2);
    button3 = (Button)findViewById(R.id.button3);
    button4 = (Button)findViewById(R.id.button4);

    setButtonOnClickListener();

}


private void setButtonOnClickListener(){
    Intent intent = new Intent(secondactivity.this, bathactivity.class);
    startActivity(intent);
}






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

}

バスアクティビティ.java

package com.example.myapplication;


import android.os.Bundle;
import android.app.Activity;
import android.widget.Button;

public class bathactivity extends Activity {
Button button;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_bath);
    button = (Button)findViewById(R.id.nextbutton);




     }



}
4

2 に答える 2

0

あなたsecondactivityはまったくスキップされていません。Activity LifecycleonCreate()ごとに開始するものが呼び出されています。内部では、 に移動するが呼び出されます。そのため、 whileが呼び出されても、すぐに次の に移動するため、それは表示されません。onCreate()setButtonOnClickListener()IntentbathactivitysecondactivityActivity

このコードをsecondactivity

button = (Button)findViewById(R.id.button);
button2 = (Button)findViewById(R.id.button2);
button3 = (Button)findViewById(R.id.button3);
button4 = (Button)findViewById(R.id.button4);

setButtonOnClickListener();

}
private void setButtonOnClickListener(){
    Intent intent = new Intent(secondactivity.this, bathactivity.class);
    startActivity(intent);
}

のようなものに

button = (Button)findViewById(R.id.button);
button2 = (Button)findViewById(R.id.button2);
button3 = (Button)findViewById(R.id.button3);
button4 = (Button)findViewById(R.id.button4);

button.setOnClickListener(new OnClickListener() /* this is one of several ways to set the 
                                                 * OnClickListener which you are not doing
                                                */
{
    @Override
    public void onClick(View v)
    {
        Intent intent = new Intent(secondactivity.this, bathactivity.class);
        startActivity(intent);   // this will start your Activity when clicking the Button
    }
});

そしてそれはあなたが望むものをあなたに与えるはずです。

于 2013-09-25T17:32:13.743 に答える
0

もちろん、それはあなたを直接連れて行ってくれますbathactivity。あなたはそれを尋ねました。の内部ではonCreate、この関数secondactivityを呼び出しています。これにより、 が作成され、が開始されます。内で関数を呼び出さないでください。XML ファイルで直接使用するだけで、ボタンの関数名を定義できます。setButtonOnClickListener();IntentbathactivityonCreateandroid:onClick

于 2013-09-25T17:32:23.400 に答える