ボタンに定義されている文字列をEditTextに表示させたい

7,268 views
Skip to first unread message

Hiroaking

unread,
Mar 24, 2011, 10:03:03 AM3/24/11
to Android-SDK-Japan
お世話になっております。
ボタンをクリックした際に、ボタンに表示された文字列(/res/values/strings.xmlで定義)を、EditTextに表示させようと
考えています。このとき、どのようにして実装したらよろしいでしょうか?下のソースコードのように考えたのですが、「型の不一致 :Buttonから
Stringへは変換できません」「labelは解決できないかフィールドではありません」というエラーになっております。

また、key01の次にkey02をクリックした場合、"key01文字列""key02文字列"というカタチで表示させたいのですが、この実装方法は
どのようにしたらよろしいでしょうか?
よろしくお教えください。

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

//button key01を取得
Button key01 = (Button)findViewById(R.id.key01);
key01.setOnClickListener(new View.OnClickListener() {
//button tenkey01がクリックされた時のハンドラ
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//ここから先にクリックされた時の処理を記述する
EditText EditText = (EditText)findViewById(R.id.EditText);
String text = (Button)findViewByID(R.label.key01);  <--エラー行
EditText.setText(text);
}
});

Keiji Ariyama

unread,
Mar 24, 2011, 10:12:25 AM3/24/11
to android-...@googlegroups.com
有山と申します。

 こんな感じでどうでしょう。
 ポイントは、onClickの引数 View v には、実際にクリックされたビューのオ
ブジェクトが渡されるので、それをキャストしてやればいいのではないかと。

//button key01を取得
Button key01 = (Button)findViewById(R.id.key01);
key01.setOnClickListener(new View.OnClickListener() {
//button tenkey01がクリックされた時のハンドラ
@Override
public void onClick(View v) {

Button btn = (Button)v; // クリックされたビューをキャスト
(この場合はボタン)
String text = btn.getText(); // ボタンに設定している文字列を取得
EditText.setText(text); // 文字列を設定
}
});

--
Keiji,
ml_an...@c-lis.co.jp

Hiroaking

unread,
Mar 30, 2011, 8:30:52 AM3/30/11
to Android-SDK-Japan
ありがとうございます。
試してみます。

Hiroaking

unread,
Mar 31, 2011, 6:45:32 AM3/31/11
to Android-SDK-Japan
お世話になっております。
教示していただきました構文ですが、
String text = btn.getText();
EditText.setText(text);
の2行にエラーが出てしまいます。

上の行では「型の不一致:CharacterSequenceからStringには変換できません」
下の行では「型TextViewから非staticメソッドsetText(CharSequence)にstatic参照することはできません」
となっています。
私自身のJavaの知識が乏しすぎるので、どうした物か回避が出来ません。
大変恐縮ですが、お知恵をお貸しください。よろしくお願い致します。

飯塚康至

unread,
Mar 31, 2011, 9:46:23 PM3/31/11
to android-...@googlegroups.com

(String) btn.getText();
とキャストしてあげればokかと。

2011/03/31 19:45 "Hiroaking" <hiro...@gmail.com>:
> --
> このメールは Google グループのグループ「Android-SDK-Japan」の登録者に送られています。
> このグループに投稿するには、android-...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-sdk-ja...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-sdk-japan?hl=ja からこのグループにアクセスしてください。
>

Masaaki Uno

unread,
Mar 31, 2011, 9:59:41 AM3/31/11
to android-...@googlegroups.com
宇野です。
試していませんが、以下のようなコードになるのではないでしょうか?
EditText.setText(text);
はスタティックメソッドの呼び出しになるので、インスタンスのメソッドにする必要があります。

//  EditTextを参照
EditText editText = (EditText) this.find...(R.id.,,,,); 

// テストデータをセットします。
String text = btn.getText().toString();
editText.setText(text);

2011/3/31 Hiroaking <hiro...@gmail.com>

mack

unread,
Mar 31, 2011, 11:46:01 PM3/31/11
to Android-SDK-Japan
なかのです

古いネタ引っ張り出してすみません。

当方もやっとこさandroidの開発を始め、ちょっとしたアプリを作っているのですが、

Intentでの受け渡しで苦労しています。

EditTextから別アプリへの受け渡しをしたいのですが、

何故か受け渡し先の選択ができず、強制的にメッセージへ転送されて考えあぐねいています。

ActivityのACTION_CHOOSER指定まわりだと推察しているのですが…

どこかにズバリなサンプルソース等ありませんでしょうか?

よろしくお願いいたします。

なかの @mack2000

On 4月1日, 午前10:46, 飯塚康至 <vse5...@gmail.com> wrote:
> (String) btn.getText();
> とキャストしてあげればokかと。
> 2011/03/31 19:45 "Hiroaking" <hiroak...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages