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として識別されるボタンをタップした瞬間に入力したテキストを取得し、それをトーストとして表示することです。

私は現在 Resources クラスを使用して toastText に保存されている文字列を取得しています、これは役に立ちません。main.xml に保存されているテキストを抽出しているためです。そのビューの :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何も入力されていない場合はリソース内の既定のテキストを表示します。

于 2012-06-12T19:38:07.050 に答える
0

インテントを介してあるアクティビティから別のアクティビティに文字列を送信したいだけの場合

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 に答える