0

我对下面的代码有疑问,我的欢迎屏幕上有两个按钮。每个按钮链接到不同的页面,我是否使用了错误的代码?大家可以指导我并纠正我吗?我是新的 android 应用程序开发。

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 执行一个意图,为 btnContinue 执行一个意图。

于 2013-04-16T03:53:21.100 回答