Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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
Java 每次按键时更新TextView_Java_Android_View_Switch Statement - Fatal编程技术网

Java 每次按键时更新TextView

Java 每次按键时更新TextView,java,android,view,switch-statement,Java,Android,View,Switch Statement,我试图做的是用每个关键事件更新TextView——基本上是将EditText的内容复制到TextView。由于某种原因,它不起作用。代码如下: View.OnKeyListener keyHandler = new OnKeyListener(){ public boolean onKey(View v, int keyCode, KeyEvent event) { TextView id = (TextView)findViewById(R.i

我试图做的是用每个关键事件更新TextView——基本上是将EditText的内容复制到TextView。由于某种原因,它不起作用。代码如下:

    View.OnKeyListener keyHandler = new OnKeyListener(){

        public boolean onKey(View v, int keyCode, KeyEvent event) {
            TextView id = (TextView)findViewById(R.id.previewEmplIdData);
            TextView fn = (TextView)findViewById(R.id.previewNameData);
            TextView ttl = (TextView)findViewById(R.id.previewTitleData);
            TextView mgr = (TextView)findViewById(R.id.previewMgrData);
            TextView loc = (TextView)findViewById(R.id.previewLocData);
            TextView strt = (TextView)findViewById(R.id.previewStartData);
            String text = "";
            EditText et;
            switch(v.getId()){
            case R.id.etFirstName:
                et = (EditText)v; // must first switch to a text field
                text = et.getText().toString();
                fn.setText(text);
                break;
            case R.id.etLastName:
                et = (EditText)v;
                text = et.getText().toString();
                break;
            case R.id.etEmplId:
                et = (EditText)v;
                text = et.getText().toString();
                id.setText(text);
                break;
            case R.id.etStartDate:
                et = (EditText)v;
                text = et.getText().toString();
                strt.setText(text);
                break;
            case R.id.etTitle:
                et = (EditText)v;
                text = et.getText().toString();
                ttl.setText(text);
                break;
            case R.id.spinnerLocation:
                break;
            case R.id.spinnerManager:
                break;
            }
            return false;
        }
    };

基本上我是通过按键切换视图id,然后将视图转换为编辑文本。我真的不知道为什么这不起作用……我一直很不走运,switch语句都起作用了。有什么帮助吗?

您将此
钥匙处理程序应用于何处?如果您刚刚创建并初始化了它,但没有在任何视图中使用,它将根本不会运行。

在哪里应用此
keyHandler
?如果您刚刚创建并初始化了它,但没有在任何视图中使用,它将根本不会运行。

OnKeyListener不能使用软键盘。您应该实现跟踪文本更改。另请注意。

OnKeyListener不能使用软键盘。您应该实现跟踪文本更改。另请注意。

我刚刚用以下方法解决了同样的问题:

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.TextView;

public class InputField extends AppCompatActivity {

private EditText input;
private TextView displayString;
private String writeText;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_input_field);

    input = (EditText) findViewById(R.id.editText);
    displayString = (TextView) findViewById(R.id.displayStringText);

    input.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {}

        @Override
        public void afterTextChanged(Editable s) {
            writeText = input.getText().toString();
            displayString.setText(writeText);
        }
    });

  }
}

我刚刚用以下方法解决了同样的问题:

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.TextView;

public class InputField extends AppCompatActivity {

private EditText input;
private TextView displayString;
private String writeText;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_input_field);

    input = (EditText) findViewById(R.id.editText);
    displayString = (TextView) findViewById(R.id.displayStringText);

    input.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {}

        @Override
        public void afterTextChanged(Editable s) {
            writeText = input.getText().toString();
            displayString.setText(writeText);
        }
    });

  }
}

哪个文本视图不显示文本?没有显示任何内容..没有任何更改。哪个文本视图不显示文本?没有显示任何内容..没有任何更改。哦…可能就是这样。如何将其应用于当前视图
getContext().setOnKeyListener()
?如果要将其应用于“活动内容”视图,最好将“活动”中的
setContentView(R.layout.activity\u layout)
更改为类似于
view activityView=LayoutFlater.from(this).充气(R.layout.activity\u layout);setContentView(activityView)
并在创建
keyHandler
后使用
activityView.setOnKeyListener(keyHandler)。但@woodshy的想法实际上更好:)据我所知,您可以使用活动的
onKeyDown
事件拦截虚拟键盘。但是你必须使用键码,而不是字符串。谢谢你的帮助。我仍然有问题,它的工作正常。我想我会看看woodshy的解决方案。谢谢哦…可能就是这样。如何将其应用于当前视图
getContext().setOnKeyListener()
?如果要将其应用于“活动内容”视图,最好将“活动”中的
setContentView(R.layout.activity\u layout)
更改为类似于
view activityView=LayoutFlater.from(this).充气(R.layout.activity\u layout);setContentView(activityView)
并在创建
keyHandler
后使用
activityView.setOnKeyListener(keyHandler)。但@woodshy的想法实际上更好:)据我所知,您可以使用活动的
onKeyDown
事件拦截虚拟键盘。但是你必须使用键码,而不是字符串。谢谢你的帮助。我仍然有问题,它的工作正常。我想我会看看woodshy的解决方案。谢谢谢谢我不知道这件事。当我使用软键盘时,它开始工作并强制关闭。谢谢。我不知道这件事。我让它工作,当我使用软键盘时,它强制关闭。