我是新手,刚开始学习,Android,然后遇到了一个小问题,希望高手指教我就想实现类似于计算器的功能,在两个EditText 中输入两个值,然后点击按钮,就在另一个Activity中显示结构。然后我获取两个EditText的值,但是老获得是空值,请高手指点一下呗!我是新手,所以这个问题可能对你们很简单,但是我一直没解决开,所以比较着急啊! 下面就是那块获取EditText 值的部分代码:public class Activity01 extends Activity {
/** Called when the activity is first created. */
private EditText factorone;
private EditText factortwo;
private TextView symbol;
private Button calculate;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
factorone = (EditText)findViewById(R.id.factorone);
factortwo = (EditText)findViewById(R.id.factortwo);
symbol = (TextView)findViewById(R.id.symbol);
calculate = (Button)findViewById(R.id.calculate);
symbol.setText(R.string.symbol);
calculate.setText(R.string.calculate);
calculate.setOnClickListener(new Calculate());
}
class Calculate implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String factoronestr = factorone.getText().toString();
String factortwostr = factortwo.getText().toString();
Intent intent = new Intent();
intent.putExtra("one", factoronestr);
intent.putExtra("two", factortwostr);
intent.setClass(Activity01.this, Other.class);
Activity01.this.startActivity(intent);
}
}
}就是factoronestr 和 factortwostr 这两个值,一直获取的是Null
/** Called when the activity is first created. */
private EditText factorone;
private EditText factortwo;
private TextView symbol;
private Button calculate;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
factorone = (EditText)findViewById(R.id.factorone);
factortwo = (EditText)findViewById(R.id.factortwo);
symbol = (TextView)findViewById(R.id.symbol);
calculate = (Button)findViewById(R.id.calculate);
symbol.setText(R.string.symbol);
calculate.setText(R.string.calculate);
calculate.setOnClickListener(new Calculate());
}
class Calculate implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String factoronestr = factorone.getText().toString();
String factortwostr = factortwo.getText().toString();
Intent intent = new Intent();
intent.putExtra("one", factoronestr);
intent.putExtra("two", factortwostr);
intent.setClass(Activity01.this, Other.class);
Activity01.this.startActivity(intent);
}
}
}就是factoronestr 和 factortwostr 这两个值,一直获取的是Null
解决方案 »
- android 模拟器异常 the application launcher has stopped unexpected,该怎么解决呢?急求
- 改动布局XML文件后一运行就forced Close,请帮看看有什么问题?
- android中同一段程序为什么就会不同的知道啊?
- 怎么获取HorizontalScrollView滚动条的宽度?
- 关于实现点击图片变亮(或则其他变化)的问题
- JAVA中如何向SQL数据保存图片文件
- android/device/XXX公司/XXXX平台/keyboard.kl 文件相关问题
- Android界面标题栏实现实时的高斯模糊效果
- 求教:android开发旅游地图
- 我的eclipse 中的安卓设备模拟器为何不能响应方向按键??
- singleTask模式下是调用onNewIntent方法得到intent的吗
- 如何搭建Android的开发环境啊。
我的问题是出在
symbol.setText(R.string.symbol);
calculate.setText(R.string.calculate);你这段没问题
你在Other中用Intent获取factorOne和factorTwo的值没嘛?(我也新手说错了勿怪哈,共同学习)
String value1=this.getIntent().getCharSequenceExtra("one").toString();
String value2=this.getIntent().getCharSequenceExtra("two").toString();
当然引用了,但是一按Button就报错,然后后来我研究了很长时间,发现按完 Button后传递过去的是一个空值,然后你把空值转换成整型的数,所以崩溃,所以先要解决EditText获取的值是空的问题!
String factortwostr = factortwo.getText().toString();
之后 加一句System.out.println(factorone.getText());
就会发现不是空的
也可以intent.getStringExtra("one");
我在第二个Activity中就是用 String factorone = intent.getStringExtra("one");
String factortwo = intent.getStringExtra("two");然后将结果在一个TextView中显示出来,结果都是NullreasultTextView.setText(factorone + " " + factortwo);
我都有想哭的冲动啊,哎,怎么回事啊!然后我刚刚也重新编了一个程序,就一个EditText 和一个Button,如果点击Button,然后在第二个Activity中显示 EditText的值,结果还是 空值,奇了个怪了啊!
你把取值的Activity贴出来就知道了。