我在文本字段中输入了值,但调试器显示空值。 文本ID是正确的,但没有打印任何值。 日志cat显示空指针异常。我已经在类中声明了所有变量。
编辑文本字符串函数在方法本身中声明。
et1 = (EditText)findViewById(R.id.editText1);
et2 = (EditText)findViewById(R.id.editText2);
et3 = (EditText)findViewById(R.id.editText3);
et4 = (EditText)findViewById(R.id.editText4);
et5 = (EditText)findViewById(R.id.editText5);
set1 = et1.getText().toString();
set2 = et2.getText().toString();
set3 = et3.getText().toString();
set4 = et4.getText().toString();
set5 = et5.getText().toString();
System.out.println("set1 ="+set1);
System.out.println("set2 ="+set2);
给定输入的所有值都显示为null,这些是在xml中声明的少数值。
我需要知道我在做什么,以及如何纠正它。
我在setContent之后初始化了值,点击监听器上的按钮发生了数据访问...我不想发布整个代码.. -
答案 0 :(得分:1)
我认为您的问题与此question相同。
在初始化EditText后,您将直接访问EditText的值。您应该接受某些事件的值,例如onClick。
让我解释一下,
public class MainActivity extends Activity
{
EditText editText;
@Override
public void onCreate ( Bundle savedInstanceState )
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById ( R.id.firstEditText );
String str = editText().getText().toString();
// Here Str will be null blank all the time because EditText it self is blank.
}
}
现在看这个
public class MainActivity extends Activity implements OnClickListener
{
EditText editText;
@Override
public void onCreate ( Bundle savedInstanceState )
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById ( R.id.firstEditText );
String str = editText().getText().toString();
// Here Str will be null blank all the time, since you haven't input anything in your EditText
}
@Override
public void onClick ( View view )
{
// Assuming you have already put some text in edittext.
String newStr = editText().getText().toString();
}
}
答案 1 :(得分:0)
请在任何按钮的onclick事件中写下这些行
set1 = et1.getText().toString();
set2 = et2.getText().toString();
set3 = et3.getText().toString();
set4 = et4.getText().toString();
set5 = et5.getText().toString();
System.out.println("set1 ="+set1);
System.out.println("set2 ="+set2);
您正在做的是尝试获取值,以便用户在edittext中编写任何内容。 SoO按钮点击获取值,以便用户可以给i / p。
答案 2 :(得分:0)
我建议您按照一些步骤找出实际问题
在从编辑文本中获取文本之前,在其中设置一些文本,然后从EditText视图中获取文本。检查它是否仍然打印为空。
我认为你做了一些愚蠢的错误,因为EditText.getText()永远不会返回null。
答案 3 :(得分:-1)
抛出NullPoint异常是因为您要将 NULL 值转换为字符串
et1.getText() is null and you are doing
et1.getText().toString();
这是错误的。
每个EditText
最初都是NULL
,因为它不包含任何值。
public Editable getText()
在API级别1中添加 返回TextView正在显示的文本。
由于EditText尚未设置任何文本,因此其当前值为null。