当从一项活动传递给另一项活动时的意图问题
问题描述:
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)未定义。有任何想法吗?当从一项活动传递给另一项活动时的意图问题
答
注意你正在创造新的意图对象到View.OnClickListener类,所以这是OnClickListener的参考,而
公众意向(上下文packageContext,类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);
答
Intent viewDataIntent = new Intent(this, Survey2.class);
应该
Intent viewDataIntent = new Intent(SurveyActivity.this, Survey2.class);
因为SurveyActivity.this
是你的实际Context
。
+0
这是真正的帮助,使SurveyActivity.this作为上下文是关键 – 2012-02-25 14:49:14
答
意图viewDataIntent =新意图(getApplicationContext(),Survey2.class);
startActivity(viewDataIntent);
这是真正有用的,谢谢! – 2012-02-25 14:48:47