Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android EditText不为空时显示TextView_Android_Android Studio - Fatal编程技术网

Android EditText不为空时显示TextView

Android EditText不为空时显示TextView,android,android-studio,Android,Android Studio,我正在使用Android应用程序,遇到了以下问题 问题:当两个edittext字段不为空时(当edittext字段中写入文本时),我希望TextView显示一些文本 我所做的: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.text_to

我正在使用Android应用程序,遇到了以下问题

问题:当两个edittext字段不为空时(当edittext字段中写入文本时),我希望TextView显示一些文本

我所做的:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle   
savedInstanceState) {
View rootView = inflater.inflate(R.layout.text_to_speech, container, false);  
...

if(edittextbox1.getText().toString().length() !=0 && edittextbox2.getText().toString().length() !=0) {
    textview.setText("some text")
} 
return rootView;
}

这是行不通的。文本视图永远不会弹出。想知道为什么吗?

请尝试设置文本视图的可见性

  @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle   
savedInstanceState) {
View rootView = inflater.inflate(R.layout.text_to_speech, container, false);  
...

if(edittextbox1.getText().toString().length() !=0 && edittextbox2.getText().toString().length() !=0) {
    textview.setText("some text");
     textview.setVisibility(View.VISIBLE);
} 
return rootView;
}

您需要使用类似的方法来收听
EditText
字段

edittextbox1 = (EditText)findViewById(R.id.editText);

edittextbox1.addTextChangedListener(new TextWatcher() {

    @Override
    public void onTextChanged(CharSequence s, int st, int b, int c) 
    {

    }

    @Override
    public void beforeTextChanged(CharSequence s, int st, int c, int a) 
    {
       if(edittextbox1.getText().toString().length() !=0) {
       textview.setText("some text")
  } 
    }

    @Override
    public void afterTextChanged(Editable s) 
    {
        if(edittextbox1.getText().toString().length() !=0) {
        textview.setText("some text")
  } 
    }
});

像这样做。它会成功的

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle   
savedInstanceState) {
   View rootView = inflater.inflate(R.layout.text_to_speech, container, false); 
   EditText edittextbox1=(EditText)rootView.findViewById(R.id.your_edittext_id1); 
   EditText edittextbox2=(EditText)rootView.findViewById(R.id.your_edittext_id2);
   TextView textView=(TextView)rootView.findViewById(R.id.your_textview_id1);

   if ((edittextbox1.getText().toString().length() != 0) && (edittextbox2.getText().toString().length() != 0)) {
        textView.setVisibility(View.VISIBLE);
        textview.setText("some text");
   } else {
        textView.setVisibility(View.GONE);
   }
   return rootView;
}

尝试此操作将TextWatcher添加到两个编辑文本。如果条件为真,您可以更改两个编辑文本的文本,然后获得长度并显示文本视图

TextWatcher textWatcher = new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int st, int b, int c)
        {

        }

        @Override
        public void beforeTextChanged(CharSequence s, int st, int c, int a)
        {

        }

        @Override
        public void afterTextChanged(Editable s)
        {
            if(edittextbox1.getText().toString().length() != 0 && edittextbox2.getText().toString().length() != 0) {
                 textView.setVisibility(View.VISIBLE);
                 textview.setText("some text");
             }
        }
    };

  edittextbox1.addTextChangedListener(textWatcher);
  edittextbox2.addTextChangedListener(textWatcher);

这两种方法都不行,因为他需要听文本更改谢谢你的回答!您知道有没有一种简单的方法可以同时查看“edittextbox1”和“og”edittextbox2?