2つのEditTextに同じ関数を使いたい

このQ&Aのポイント
  • JAVA eclipseでアプリを作成しています。
  • 下記のソースコードでは、onCreate時にHogeText1に対して処理を追加しています。
  • HogeText2にも同じ処理を追加する方法を教えてください。
回答を見る
  • ベストアンサー

2つのEditTextに同じ関数を使いたい

お世話になります。 JAVA eclipseでアプリを作成しています。 下記のソースで、onCreate時に、 (5行目)HogeText1に対して、「override:onCreateActionMode」で 処理を追加しています。 この処理を,HogeText2に対しても同じ処理を入れたいたのですが、 どのようにすれば、綺麗にかけるでしょうか? ※現在は、 final EditText editText = (EditText) findViewById(R.id.HogeText1); 以下の文を final EditText editText = (EditText) findViewById(R.id.HogeText2); にして、テキストビューの数、繰り返しています。 何卒宜しくお願いします。 -------------------------------- public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final EditText editText = (EditText) findViewById(R.id.HogeText1); editText.setCustomSelectionActionModeCallback(new ActionMode.Callback() { @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { menu.removeItem(android.R.id.paste); menu.removeItem(android.R.id.cut); menu.removeItem(android.R.id.copy); } }; ------------------------------------------

  • Java
  • 回答数2
  • ありがとう数8

質問者が選んだベストアンサー

  • ベストアンサー
  • teketon
  • ベストアンサー率65% (141/215)
回答No.2

ActionMode.Callbackはインターフェースなので正しくは、実装でしたね。 public class CallbackImpl implements ActionMode.Callback{  public boolean onCreateActionMode(ActionMode mode, Menu menu) {   menu.removeItem(android.R.id.paste);   menu.removeItem(android.R.id.cut);   menu.removeItem(android.R.id.copy);  }  //その他のメソッド } -------------------------------- public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final EditText editText1 = (EditText) findViewById(R.id.HogeText1); CallbackImpl callback1 = new CallbackImpl(); editText1.setCustomSelectionActionModeCallback(callback1); final EditText editText2 = (EditText) findViewById(R.id.HogeText2); CallbackImpl callback2 = new CallbackImpl(); editText2.setCustomSelectionActionModeCallback(callback2); ------------------------------------------ こんな感じ。

dosiroutodesuyo
質問者

お礼

ご返事ありがとうございます。 頂いたソースで、理解できました。 本当に、お時間を取らせてもうしわけございませんでした。 大変助かりました。

その他の回答 (1)

  • teketon
  • ベストアンサー率65% (141/215)
回答No.1

ActionMode.Callbackを継承したクラスを作成する。

dosiroutodesuyo
質問者

お礼

ご連絡ありがとうございます。 >ActionMode.Callbackを継承したクラスを作成する。 私の知識不足で、申し訳ないのですが、具体的に どのようにすればよいのか、分かりませんでした。 もし、ご存じでしたら、具体的な手順を教えて 頂けないでしょうか? ご存じでしたら宜しくお願い致します。

関連するQ&A

  • nullpointexceptionについて

    プログラミング初心者です。 エラーが全くわかりません。 ボタンを押すと、リストビューに移動するというものなんですが、ボタンを押すとnullpointexceptionが出ます。 最後の、et.setText(str);でエラーになっているようなんですが、 お分かりになる方いらっしゃいますか・・・? よろしくお願いいたします。 public class MainActivity extends Activity { EditText text_naiyou =null; Button save=null; Button buck=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); save=(Button)findViewById(R.id.save); buck=(Button)findViewById(R.id.buck); text_naiyou=(EditText)findViewById(R.id.text_naiyou); save.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { EditText et = (EditText)findViewById(R.id.text_naiyou); String str = et.getText().toString(); Intent intent = new Intent(); intent.setClass(getApplicationContext(), ListActivity.class); String pkg = getPackageName(); intent.putExtra(pkg + ".input",str); startActivity(intent); public class ListActivity extends Activity { EditText text_naiyou =null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list); Intent intent = getIntent(); String pkg = getPackageName(); String str = intent.getStringExtra(pkg + ".input"); EditText et = (EditText)findViewById(R.id.text_naiyou); et.setText(str);

  • Android JAVAへでの質問です

    (←※この部分!) の意味がわからないのでどなたか教えていただけないでしょうか? private EditText edit1; ですが、なぜ private がついているのでしょうか?なくても動きましたが何か意味があるのでしょうか? そしてどうして、この子はここにいるのでしょうか? Button btn1 と一緒に仲良くいてもいいんじゃないでしょうか? ================ import android.app.Activity; import android.os.Bundle; import android.text.Editable; import android.view.*; import android.view.View.OnClickListener; import android.widget.*; public class Test2Activity extends Activity { private EditText edit1;(←※この部分!) @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); edit1 = (EditText)this.findViewById(R.id.EditText1); Button btn1 = (Button)this.findViewById(R.id.button1); btn1.setOnClickListener(new MyClickA()); } class MyClickA implements OnClickListener { public void onClick(View view){ Editable e = edit1.getText(); int n = Integer.parseInt(e.toString()); Toast toast = Toast.makeText(getApplicationContext(), "数値=" + n, Toast.LENGTH_SHORT); toast.show(); } } }

    • ベストアンサー
    • Java
  • 課題プログラムが強制終了

    現在Androidの学習をしている初心者です。 演習問題の課題プログラムが与えられており、それをこなしています。 ある演習問題でhas application stoppedとなってしまい、強制終了してしまいます。 ググったりしてみたのですが、解決の糸口になるような情報を得られませんでした。 logcatを見た結果、ソースの変更点でNullPointerExceptionが発生していました。 コード的に問題ない(ビルドは通る)ので対策がまったくもって分かりません。 お知恵を拝借したいのですが…。 以下に問題となったソースコードを張り付けておきます。 import android.app.Activity; import android.os.Bundle; import android.view.ContextMenu; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.SubMenu; import android.view.View; import android.view.ContextMenu.ContextMenuInfo; import android.widget.EditText; import android.widget.TextView; public class Main extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // コンテキストビューアクションの設定 EditText txtMenuTouch = (EditText) findViewById(R.id.sampleText); registerForContextMenu(txtMenuTouch); ←ここでNullPointer発生 // 画面描画 setContentView(R.layout.main); } // -- オプションメニュー関連 @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); MenuInflater iflater = getMenuInflater(); iflater.inflate(R.menu.optionmenu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { final String message; switch (item.getItemId()) { case R.id.opt_menu: message = "オプションメニューが選択されました!"; break; default: message = "その他(入らない)"; break; } TextView txtMenuTouch = (TextView) findViewById(R.id.showMenuTouch); txtMenuTouch.setText(message); return true; } // -- コンテキストメニューとサブメニュー関連 final static int CONTEXT_ITEM_ID1 = 1000; @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); menu.setHeaderTitle("こんてきすとめにゅー"); menu.add(0, CONTEXT_ITEM_ID1, 0, "コンテキストメニュー!"); } @Override public boolean onContextItemSelected(MenuItem item) { final String message; switch (item.getItemId()) { case CONTEXT_ITEM_ID1: message = "こんてきすとめにゅーが指定されました!"; break; default: message = "その他(入らない)"; break; } TextView txtMenuTouch = (TextView) findViewById(R.id.showMenuTouch); txtMenuTouch.setText(message); return true; } // -- その他機能 public void exitButton_click(View view) { this.finish(); } よろしくお願いいたします。

  • eclipseの新規作成で、最初に出てくるソースについて

    eclipseの新規作成で、最初に出てくるソースについて 超素人です。どなたかこちらの解説をしていただけないでしょうか…? importやpublic、@Overrideの意味とか… package com.pikopiko; import android.app.Activity; import android.os.Bundle; public class yukari2 extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } そしてデジタル時計を作ってみたいのですが、下のコードはどこに記述すればいいのでしょうか? <DigitalClock android:id="@+id/DigitalClock" android:layout_width="wrap_content" android:layout_height="wrap_content"/>

  • アンドロイドのJAVAの基本(文法)について

    アンドロイドの開発を目指して基本から勉強していますが、 本を買っても何のことかさっぱりで困っています。 基本中の基本で恐縮ですが、習熟している方、お助けください。 1.下記はどういう意味でしょうか? public class DBSampleA extends Activity implements View.OnClickListener{ ※implementsの意味を調べても何のことかさっぱりです・・ 2.下記の@Override とは何を意味するのでしょうか? @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); 3.また、onCreate(Bundle savedInstanceState) の中の、 Bundle savedInstanceState はどういう位置付けなのでしょうか?

    • ベストアンサー
    • Java
  • Androidプログラミング アプリが停止する

    eclipseでボタンを押すと画像が表示されるアプリをつくろうとしていましたがボタンをを押すとポップアップで「~を停止します。」と表示されアプリが落ちてしまいます。 Ver4.0を使用しています。 package my.application.imageviewer; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.ImageView; public class ImageViewer extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void showImage(View view) { ImageView imageView1 = (ImageView)findViewById(R.id.imageView1); imageView1.setImageResource(R.drawable.sample); } } プログラムにミスがあるのでしょうか? 宜しくお願い致します。

  • EditText型をint型に変換し通貨表示に

    ■やりたいこと: AndroidのEditTextに、ユーザがインプットメソッドを用いて数字を入力した際、その値を 1. int型変数と、String型変数に代入(2つの型で、後々使えるよう変数内にデータ保持したい) 2. EditText(スマホ画面)には、入力後「通貨」書式で表示したい 「通貨」書式とは、EditTextに「1000と入力したら、1,000」のように、位取りして表示をしたいという意味です。 下記コードだと、アプリが起動直後に落ちてしまいます。 実行後に表示されるLogCatには「FATAL EXCEPTION」と書かれています。 ■レイアウト(xml:activity_main) <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType="number"//画面から数値のみ:入力制限 android:digits="0123456789"/> ■クラスファイル public class MainActivity extends Activity implements OnFocusChangeListener { EditText editText; String str; String str2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //editText1=layoutのEditTextのid EditText editText = (EditText)findViewById(R.id.editText1); editText.setOnFocusChangeListener(this); str = editText.getText().toString(); //EditTextに入力された数字を取得 int i = Integer.parseInt(str); //Integerクラスの値=整数値を取得★ NumberFormat numFormat = NumberFormat.getCurrencyInstance(); //通貨フォーマット str2 = numFormat.format(i); //整数値を通貨フォーマットに } @Override public void onFocusChange(View arg0, boolean getFocus) { if (getFocus){ editText.setText(str2); //EditTextにセット(表示) } } } ==================================================================== 原因は「★」の部分のようです。ここを通過するととデバッガが落ちます。 (EditTextに半角数字を入れても、それがint型の保証がないからでしょうか) 上の「やりたいこと」を実現するには、どこを修正すればよいでしょうか。

  • androidアプリ開発 youtube表示方法

    androidアプリをjavaで開発してます。youtube動画を見れるアプリにしたいです。下記のコードでyoutubeサイトには行けるんですが、画象をクリックしても動画を見ることができません。どのようにすれば動画を見れるようになるでしょうか?どうぞよろしくお願いします。 package com.XXX; import android.app.Activity; import android.os.Bundle; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; public class WebViewActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.web); WebView webView = (WebView)findViewById(R.id.main_webview); webView.setWebViewClient(new WebViewClient()); webView.loadUrl(url); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); } }

  • androidのオプションメニューについて

    androidアプリの作り方を勉強しているのですが、オプションメニューを実装しようと思いonCreateOptionMenuを書いたのですが、エミュレータでメニューボタンを押してもメニューが現れません。onCreateOptionMenu内でTextViewの文字を変更するようにしたのでが、TextViewは変更されず、そもそもonCreateOptionMenuがスルーされているようです。だれか、わかる方がいたらご教授お願いします。 以下ソースです。 シンプルにしたのですが問題がわかりません。 import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; public class Test04Activity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public boolean onCreateOptionMenu(Menu menu){ super.onCreateOptionsMenu(menu); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); return true; } }

  • androidのアプリを作ってるんですが

    import android.os.Bundle; import android.app.Activity; import android.util.Log; import android.view.Menu; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.TextView; import android.content.Intent; import android.widget.ImageView; public class GameActivity extends Activity implements OnTouchListener{ private ImageView target; @Override protected void onCreate(Bundle savedInstanceState) { target = (ImageView)findViewById(R.id.imageView1); super.onCreate(savedInstanceState); setContentView(R.layout.activity_game); target.setOnTouchListener(this); } @Override public boolean onTouch(View v, MotionEvent motion) { switch(motion.getAction()) { case MotionEvent.ACTION_DOWN: break; case MotionEvent.ACTION_UP: break; } return true; } } これからゲーム本体を作っていこうとしてるんですが、onTouchメソッドを実装してから実機で動作しなくなり、先に進めず困っています。なぜこれで動作しないのか私の知識不足でよくわかりません。 回答お願いいたします。

    • ベストアンサー
    • Java

専門家に質問してみよう