0

所以我想这很简单,就像使用 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();
    }
}
}
4

3 回答 3

5

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

例子:

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();
}

此代码将在 EditText 可用时显示带有文本的 toast,在toast未输入任何内容时显示资源中的默认文本。

于 2012-06-12T19:38:07.050 回答
0

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

Intent intent = new Intent();
intent.putExtra("key","stringValue");
startActivity(intent);

然后在你的其他活动中

Intent intent = getIntent();
String value = intent.getStringExtra("key","defaultstring");
于 2012-06-12T19:39:27.160 回答
0

我认为这:

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

应该是这样的:

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

如果不是,我想知道您为什么需要使用中间阶段而不是将其直接转换为 java String 对象

于 2013-03-28T09:14:57.117 回答