0

以下のコードに問題があります。ようこそ画面に 2 つのボタンがあります。各ボタンは別のページにリンクしていますが、間違ったコードを使用していますか? 皆さんは私を導き、私を正してもらえますか?? 私は新しいアンドロイドアプリの開発をしています。

package com.example.testing;

    import android.app.Activity;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.preference.PreferenceManager;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;

    public class WelcomeActivity extends Activity implements OnClickListener {

        private Boolean firstRun;
        //private Boolean accountRun;

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

            SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
            if(sp.getBoolean("firstRun", true)){
                PreferenceManager.setDefaultValues(this, R.xml.preferences, true);
                firstRun = true;
                SharedPreferences.Editor editor = sp.edit();
                editor.putBoolean("firstRun", false);
                editor.commit();
            } else {
                firstRun = false;
            }

            this.initViews();
        }

        private void initViews(){
            Button btnAccount = (Button)this.findViewById(R.id.btnAccount);
            btnAccount.setOnClickListener(this);
            Button btnContinue = (Button)this.findViewById(R.id.btnContinue);
            btnContinue.setOnClickListener(this);
        }

        @Override
        public void onClick(View arg0) {
            Intent i = new Intent(this, testingquestion1.class);
            i.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
            i.putExtra("firstRun", firstRun);
            startActivity(i);

            Intent h = new Intent(this, testingquestion2.class);
            //h.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
            //i.putExtra("firstRun", firstRun);
            startActivity(h);
        }

    }
4

2 に答える 2

2

どのボタンがクリックされているかを確認する条件がありません。View arg0 を使用することを確認します。次のコードを試して、最初の実行に必要なロジックを追加してください。

@Override
public void onClick(View v) {
    if (btnAccount.getId() == (((Button)v).getId())){
        Intent i = new Intent(this, testingquestion1.class);
        i.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
        i.putExtra("firstRun", firstRun);
        startActivity(i);
    } else (btnContinue.getId() == (((Button)v).getId())){
        Intent i = new Intent(this, testingquestion1.class);
        startActivity(i);
    }
}
于 2013-04-16T04:05:46.760 に答える
0

両方のボタンのクリックごとに 2 つのインテントを実行したくありません。そこに if ステートメントを使用して、どのボタンが押されたかを確認し、btnAccount に対して 1 つのインテントを実行し、btnContinue に対して 1 つのインテントを実行します。

于 2013-04-16T03:53:21.100 に答える