Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/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
如何在Android中的Edittext上设置占位符,并在用户未键入任何输入时使用它?_Android_Android Edittext_Placeholder - Fatal编程技术网

如何在Android中的Edittext上设置占位符,并在用户未键入任何输入时使用它?

如何在Android中的Edittext上设置占位符,并在用户未键入任何输入时使用它?,android,android-edittext,placeholder,Android,Android Edittext,Placeholder,我想在android中有一个EditText,其中有一个占位符,如果用户不键入任何内容,它将用作我的输入。在我的案例中,编辑文本用于提示 我知道“提示”是一个占位符,但它不使用它作为输入。如果我将提示设置为“AAA”,而用户不键入任何内容并按“OK”,我将得到一个空字符串,而不是“AAA” 这是我的密码: private void promptForUsername(){ // get prompts.xml view LayoutInflater layoutI

我想在android中有一个EditText,其中有一个占位符,如果用户不键入任何内容,它将用作我的输入。在我的案例中,编辑文本用于提示

我知道“提示”是一个占位符,但它不使用它作为输入。如果我将提示设置为“AAA”,而用户不键入任何内容并按“OK”,我将得到一个空字符串,而不是“AAA”

这是我的密码:

private void promptForUsername(){
        // get prompts.xml view
        LayoutInflater layoutInflater = LayoutInflater.from(context);

        View promptView = layoutInflater.inflate(R.layout.prompts, null);

        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);

        // set prompts.xml to be the layout file of the alertdialog builder
        alertDialogBuilder.setView(promptView);

        final EditText input = (EditText) promptView.findViewById(R.id.userInput);


        //setup a dialog window
        alertDialogBuilder
        .setCancelable(false)
        .setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                // get user input and set it to result
                addEvent(levelSelected, input.getText().toString(), Integer.parseInt(points), time + "s");
                sqlLogic();
            }
        })
        .setNegativeButton("Cancel",
                new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                sqlLogic();
                dialog.cancel();
            }

        });
        // create an alert dialog
        AlertDialog alertD = alertDialogBuilder.create();
        alertD.show();

        input.setFocusableInTouchMode(true);
        input.requestFocusFromTouch();

        InputMethodManager lManager = (InputMethodManager)this.getSystemService(Context.INPUT_METHOD_SERVICE); 
        lManager.showSoftInput(input, 0);

    }
version=“1.0”encoding=“utf-8”>

只需创建一个字符串变量并有条件地检查它应该是什么

String text = (input.getText().toString().equals("")? "AAA": input.getText().toString();
ddEvent(levelSelected, text, Integer.parseInt(points), time + "s");
请注意,如果您没有使用三元格式,第一行与下面的相同(以最简单的形式)


在某处添加此静态方法:

static CharSequence getTextOrHint(TextView tv) {
  return(TextUtils.isEmpty(getText()) ? getHint() : getText());
}

然后使用该方法检索您的值,如果该值存在,则返回文本;如果不存在,则返回提示。

android:hint=“hint text”
添加到
EditText
声明中

谢谢,这将是我的解决方案,我想Android可能已经有办法自己处理了。顺便说一句:
treative
实际上被称为
tritrial
。我在xml中找到了答案,添加:Android:hint=“text”这很有帮助。但不是针对上面的问题
String text = "";
if(input.getText().toString().equals(""){
    text = "AAA";
}
else{
    text = input.getText().toString();
}
static CharSequence getTextOrHint(TextView tv) {
  return(TextUtils.isEmpty(getText()) ? getHint() : getText());
}