私は5つのボタンを持つメイン画面を持っています。 aボタンを押すたびに、新しい画面に移動したい。今まで私は5つのクラス(各スクリーンごとに)と5つのxmlを持っています。しかし、この画面でもっと良い方法があり、xmlsが同じであることを確かめて、私がやりたいことはテキストやデータをデータベースから取り出すことです。私は別のクラスと1つのxmlしかonyできず、引数として必要な値を渡すことができると確信しています。 (私のアプリには15個のボタンがなければならないと想像してください。スペースが無駄になり、15個の.javaファイルと15個のxmlファイルが同じで、画像やテキストビューの値が変わるだけです。 。主な活動のための私のコードは次のとおりです。私のクラスを引数にする
public class MyActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
main2Theme();}
private void main2Theme() {
setContentView(R.layout.main_new);
Button Button100 = (Button)findViewById(R.id.Button100);
Button113.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Intent i = new Intent(this, OtherScreenName.class);
startActivity(i);
}
}); //and so on for 15 buttons
私OtherScreenName.classは次のとおりです。
public class OtherScreenName extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Theme();
}
@SuppressWarnings("null")
private void Theme() {
Log.d("SnowReportApp","Do first thing");
setContentView(R.layout.otherscreenname); //THIS CHANGES IN EVERY CLASS DEPENDING ON THE ID OF THE BUTTON
String result = "";
InputStream is = null;
StringBuilder sb=null;
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();//() before
nameValuePairs.add(new BasicNameValuePair("ski_id","OtherScreenName"));
TextView text1 = (TextView) findViewById(R.id.otherscreenname_1);
//THESE 2 CHANGE DEPERNDING ON THE BUTTON PRESSED
//perform action.....
//AND ALSO HERE I NEED THE ID OF THE BUTTON
b1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent i = new Intent(OtherScreenName.this,MyActivity.class);
startActivity(i);
}
});
誰もが私のクラスに引数を与える方法と、それはそれらのタイプがどうあるべきかを提案することはできますか?
はい、このようなものです。したがって、渡したい型の番号とパラメータにも関わらず、バンドルを作成して、次にb.putInt、b.putIntと言ってください。 (または各パラメータの異なるバンドル?)多くのありがとう! – ghostrider
はい、正確です。もちろん、Parcelableインターフェイスを実装しているクラスにそれらをラップし、 'b.putExtra(String name、Parcelable value)'でクラス全体をExtrasにするよりも、渡す引数が多い場合は、 – vitakot