Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
如何从EditText视图中提取文本-Android_Android_String_Android Edittext - Fatal编程技术网

如何从EditText视图中提取文本-Android

如何从EditText视图中提取文本-Android,android,string,android-edittext,Android,String,Android Edittext,所以我想这是一个简单的方法,比如使用getText()检索信息:) 以下是它的结局: public void getToast(View v) { EditText et = (EditText) findViewById(R.id.userText); String toastText = et.getText().toString(); if (toastText == "" || toastText == null) { Toast.makeText

所以我想这是一个简单的方法,比如使用getText()检索信息:)

以下是它的结局:

public void getToast(View v) {
    EditText et = (EditText) findViewById(R.id.userText);
    String toastText = et.getText().toString();
    if (toastText == "" || toastText == null) {
        Toast.makeText(this, "This is a nice toast!", Toast.LENGTH_SHORT).show();   
    }
    else {
    Toast.makeText(this, toastText, Toast.LENGTH_SHORT).show();
    }
}
我已经在主布局文件上创建了EditText视图。这是使用userText标识符引用的。由于它是EditText字段,用户可以随时修改其中的文本;我试图实现的是检索用户在点击标识为getToast的按钮时输入的文本,然后将其显示为Toast

目前我正在使用Resources类(我的第一个猜测?)来检索存储在toastText下的字符串,但这是没有用的,因为它正在提取存储在main.xml中的文本——这是空的,因为我声明该视图没有“android:text”属性,而是使用了“android:hint”来告诉用户输入文本

我读过关于意图的文章,但是如果我将字符串发送到另一个活动,而不是在同一个活动中,那么这样做是有意义的。我原以为这是一项简单的任务,但它比我希望的要耗费更多的时间:P

顺便说一句:

getToast方法被定义为在XML上创建的按钮的“android:OnClickMethod”。它将与任何其他文本字符串一起工作

有什么想法吗

package com.testlabs.one;

import android.app.Activity;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class initialui extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main); 
}

public void getToast(View v) {
    Resources myResources = getResources();
    String toastText = myResources.getString(R.string.toast); 
    if (toastText == "" || toastText == null) {
        Toast.makeText(this, "This is a nice toast!", Toast.LENGTH_SHORT).show();   
    }
    else {
    Toast.makeText(this, toastText, Toast.LENGTH_SHORT).show();
    }
}
}

只需在TextView上调用函数
getText()

例如:

public void getToast( View v )
{
    String toastText = ( (EditText)v ).getText();
    if ( toastText.length() == 0 ) {
        toastText = getResources().getString( R.string.toast );
    }
    Toast.makeText( this, toastText, Toast.LENGTH_SHORT ).show();
}

此代码将显示一个toast,其中包含EditText中的文本(如果可用),以及
toast
资源中的默认文本(如果未输入任何内容)。

您只需在TextView上调用函数
getText()

例如:

public void getToast( View v )
{
    String toastText = ( (EditText)v ).getText();
    if ( toastText.length() == 0 ) {
        toastText = getResources().getString( R.string.toast );
    }
    Toast.makeText( this, toastText, Toast.LENGTH_SHORT ).show();
}

此代码将显示一个toast,其中包含EditText中的文本(如果可用),以及
toast
资源中的默认文本(如果未输入任何内容)。

如果您只想通过Intent将字符串从一个活动发送到另一个活动

Intent intent = new Intent();
intent.putExtra("key","stringValue");
startActivity(intent);
然后在你的其他活动中

Intent intent = getIntent();
String value = intent.getStringExtra("key","defaultstring");

如果您只想通过Intent将字符串从一个活动发送到另一个活动

Intent intent = new Intent();
intent.putExtra("key","stringValue");
startActivity(intent);
然后在你的其他活动中

Intent intent = getIntent();
String value = intent.getStringExtra("key","defaultstring");
我认为:

EditText et = (EditText) findViewById(R.id.userText);
String toastText = et.getText().toString();
应该是这样的:

String toastText  = findViewById(R.id.userText).toString();
如果没有,我想知道为什么需要使用中间阶段,而不是直接将其转换为java字符串对象

我认为:

EditText et = (EditText) findViewById(R.id.userText);
String toastText = et.getText().toString();
应该是这样的:

String toastText  = findViewById(R.id.userText).toString();

如果没有,我想知道为什么您需要使用中间阶段,而不是直接将其强制转换为java字符串对象

谢谢,我觉得自己像个傻瓜:(这确实有效,我得到了祝酒词,在视图上显示文本:)谢谢,我觉得自己像个傻瓜:(这确实奏效,我得到了祝酒词,以便在视图上显示文本:)