умышленная проблема при переходе от одного занятия к другому - PullRequest
0 голосов
/ 25 февраля 2012
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 ]

3 голосов
/ 25 февраля 2012

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

startActivity (viewDataIntent);

3 голосов
/ 25 февраля 2012
Intent viewDataIntent = new Intent(this, Survey2.class);

должно быть

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

потому что SurveyActivity.this это ваш фактический Context.

1 голос
/ 25 февраля 2012

Обратите внимание, что вы создаете новый объект Intent в классе View.OnClickListener, так что это ссылка на 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);
...