从一个活动传递到另一个活动时的意图问题

时间:2012-02-25 06:59:26

标签: android android-activity android-intent

package nidhin.survey;

import android.app.Activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.*;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.RadioGroup;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.TextView;

public class SurveyActivity extends Activity implements OnCheckedChangeListener

{
CheckBox cb;
String myChoice;

RadioButton radio1;
RadioButton radio2;
RadioButton radio3;
RadioButton radio4;
RadioGroup rg;
EditText text1;
Button button1;
Button button2;

public void onCreate(Bundle savedInstanceState) 

{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    cb=(CheckBox)findViewById(R.id.check);
    cb.setOnCheckedChangeListener(this);
    RadioGroup rg=(RadioGroup)findViewById(R.id.rg);
    radio1=(RadioButton)findViewById(R.id.radio1);
    radio2=(RadioButton)findViewById(R.id.radio2);
    radio3=(RadioButton)findViewById(R.id.radio3);
    radio4=(RadioButton)findViewById(R.id.radio4);
   // rg.setOnCheckedChangeListener(this);
    rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

        public void onCheckedChanged(RadioGroup group, int checkedId) {

            switch(checkedId)
            {
            case R.id.radio1:
                myChoice = "one";
                text1.setText(myChoice);
                break;
            case R.id.radio2:
                myChoice = "two";
                text1.setText(myChoice);
                break;
            case R.id.radio3:
                myChoice = "three";
                text1.setText(myChoice);
                break;
            case R.id.radio4:
                myChoice = "four";
                text1.setText(myChoice);
                break;
            }

        }
    }); 
    text1=(EditText)findViewById(R.id.etext1);
    text1.setText(myChoice);
    button1 = (Button) findViewById(R.id.button01);
    button1.setOnClickListener(new clicker());
    button2 = (Button) findViewById(R.id.button02);
    button2.setOnClickListener(new clicker());
}

    public void onCheckedChanged(CompoundButton buttonView,
    boolean isChecked) 
    {
        if (isChecked) 
            {
            cb.setText("Yes , I have a car!");
            }
        else 
            {
            cb.setText("  ");
            }

                    if (isChecked) {
                    TextView tv= new TextView (this);
                    tv.setText("You have a car , nice!");
                      }
    }


        class clicker implements Button.OnClickListener
        {
                public void onClick(View v)
                {                        
                    if(v==button1)
                    {
                        text1.setText(myChoice);
                        Toast.makeText(getBaseContext(), 

                            "~~~~Successfully submitted~~~", 
                            Toast.LENGTH_LONG).show();
                    }

                       if(v==button2)
                    {
                        Intent viewDataIntent = new Intent(this, Survey2.class);
                        String myData = "You should see this";
                        viewDataIntent.putExtra("valueOne", myData);
                        startActivity(viewDataIntent);
                    }
                }
        }



}

您好,这似乎是一个简单的问题,但我无法以某种方式找到解决方案。我试图在我的Android应用程序中从一个活动传递到另一个活动。因此,当单击第二个按钮时,程序必须加载新活动。我得到的错误是行 - Intent viewDataIntent = new Intent(this,Survey2.class);它说构造函数Intent(SurveyActivity.clicker,Class)是未定义的。有什么想法吗?

3 个答案:

答案 0 :(得分:3)

Intent viewDataIntent = new Intent(this, Survey2.class);

应该是

Intent viewDataIntent = new Intent(SurveyActivity.this, Survey2.class);

因为SurveyActivity.this是您的实际Context

答案 1 :(得分:3)

Intent viewDataIntent = new Intent(getApplicationContext(),Survey2.class);

startActivity(viewDataIntent);

答案 2 :(得分:1)

注意,您正在View.OnClickListener类中创建新的Intent对象,因此这是OnClickListener的引用,而

public Intent(Context packageContext,Class cls)需要一个上下文对象作为第一个参数,所以请改为:

Intent viewDataIntent = new Intent(v.getContext(), Survey2.class);
                        String myData = "You should see this";
                        viewDataIntent.putExtra("valueOne", myData);
                        startActivity(viewDataIntent);

Intent viewDataIntent = new Intent(SurveyActivity.this, Survey2.class);
                        String myData = "You should see this";
                        viewDataIntent.putExtra("valueOne", myData);
                        startActivity(viewDataIntent);