我是新手,刚开始学习,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
解决方案 »
- 在学习HttpURLConnection报错FATAL EXCEPTION: main求解
- 如何在当前的activity获取登录界面的账号
- handler怎么传数据?
- Android 编程时出现build path错误~~新手求解
- android 通过底层控制apk安装
- 如何在eclipse中调试app?
- 求教一个疑惑~
- 两个fragment 如何共享一个MediaPlayer
- 安卓引入fragment之后,程序写法发生了变化,新写法写的应用能在旧版本上运行吗?
- BaseAdapter中怎么使用Application全局变量
- 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贴出来就知道了。