编辑不接受价值的文字

时间:2014-03-14 09:40:35

标签: android android-edittext

我在文本字段中输入了值,但调试器显示空值。 文本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之后初始化了值,点击监听器上的按钮发生了数据访问...我不想发布整个代码.. -

4 个答案:

答案 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)

我建议您按照一些步骤找出实际问题

  1. 检查您是否在setContentView中设置了正确的布局。
  2. 在从编辑文本中获取文本之前,在其中设置一些文本,然后从EditText视图中获取文本。检查它是否仍然打印为空。

    我认为你做了一些愚蠢的错误,因为EditText.getText()永远不会返回null。

答案 3 :(得分:-1)

抛出NullPoint异常是因为您要将 NULL 值转换为字符串

et1.getText() is null and you are doing 
et1.getText().toString();

这是错误的。

每个EditText最初都是NULL,因为它不包含任何值。

根据Android Docs

  

public Editable getText()

     

在API级别1中添加   返回TextView正在显示的文本。

由于EditText尚未设置任何文本,因此其当前值为null。