コピペできる各種コントロールの使い方 [Android Studio]
目次
1. EditText
2. Button
3. CheckBox
4. RadioButton/RadioGroup
5. ToggleButton
6. Switch
7. ImageView
8. WebView
9. VideoView
10. CalendarView
11. ProgressBar(Horizontal)
12. SeekBar/SeekBar(Discrete)
13. RatingBar
14. SearchView
15. Spinner
16. ListView
1. EditTextの使い方
EditText et = findViewById(R.id.editText); // 最大文字数を6桁にする et.setFilters(new InputFilter[] {new InputFilter.LengthFilter(6)}); // 文字列を取得する String str = et.getText().toString(); // アプリのタイトルに表示する MainActivity.this.setTitle(str); // 文字列を設定する et.setText("こんにちは。"); // イベント et.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // テキスト変更前 } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // テキスト変更中 } @Override public void afterTextChanged(Editable s) { // テキスト変更後 } });
2. Buttonの使い方
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // ココにクリック時のイベントを処理する } });
3. CheckBoxの使い方
// チェックボックスの状態を取得する CheckBox ch = findViewById(R.id.checkBox); if (ch.isChecked()) MainActivity.this.setTitle("true"); else MainActivity.this.setTitle("false");
4. RadioButton/RadioGroupの使い方
// 選択中のラジオボタンを取得する RadioGroup rg = findViewById(R.id.radioGroup); RadioButton rb = findViewById(rg.getCheckedRadioButtonId()); // ラジオボタンの文字列をアプリのタイトルにする MainActivity.this.setTitle(rb.getText().toString());
5. ToggleButtonの使い方
ToggleButton tb = findViewById(R.id.toggleButton); // スイッチをオンにする tb.setChecked(true); // イベント tb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { // スイッチの状態が変化 @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) MainActivity.this.setTitle("true"); else MainActivity.this.setTitle("false"); } });
6. Switchの使い方
Switch sw = findViewById(R.id.switch1); // スイッチをオンにする sw.setChecked(true); // イベント sw.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { // スイッチの状態が変化 @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) MainActivity.this.setTitle("true"); else MainActivity.this.setTitle("false"); } });
7. ImageViewの使い方
ImageView iv = findViewById(R.id.imageView); // Android固有のアイコンを使用する場合(アイコンは任意) iv.setImageResource(android.R.drawable.btn_star_big_on); // \res\drawable\フォルダに置いた画像を読み込む場合(logoのファイル名は任意) iv.setImageResource(R.drawable.logo);
8. WebViewの使い方
AndroidManifest.xmlの<manifest></manifest>の中に
<uses-permission android:name="android.permission.INTERNET"/>
を追加する必要があります。
WebView wv = findViewById(R.id.webView); wv.loadUrl("https://www.petitmonte.com/");
9. VideoViewの使い方
AndroidManifest.xmlの<manifest></manifest>の中に
<uses-permission android:name="android.permission.INTERNET"/>
を追加する必要があります。
VideoView vv = findViewById(R.id.videoView); vv.setVideoURI(Uri.parse("https://www.example.com/test.mp4")); vv.start();
10. CalendarViewの使い方
CalendarView cv = findViewById(R.id.calendarView); // イベント cv.setOnDateChangeListener(new CalendarView.OnDateChangeListener() { // 選択日が変更 @Override public void onSelectedDayChange(@NonNull CalendarView view, int year, int month, int dayOfMonth) { // アプリのタイトルに表示する MainActivity.this.setTitle(String.format("%d%02d%02d",year,month,dayOfMonth)); } });
11. ProgressBar(Horizontal)の使い方
バックグラウンドの非同期処理(AsyncTask)でプログレスバーを動作させます。事前準備としてアクティビティにProgressBar1個、Button2個(実行、キャンセル)を配置します。
import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ProgressBar; public class MainActivity extends AppCompatActivity { // 非同期処理を行うAsyncTaskクラスを継承する // AsyncTaskのジェネリクス<Params,Progres,Result> // Params .. 主にdoInBackgroundの引数型 // Progress .. 主にonProgressUpdateの引数型 // Result .. 主にdoInBackgroundの戻り値 public class MyAsyncTask extends AsyncTask<Object,Integer,Integer>{ private AppCompatActivity My; private ProgressBar progressBar; private Button button; // コンストラクタ protected MyAsyncTask(AppCompatActivity activity, ProgressBar progressBar, Button button) { this.My = activity; this.progressBar = progressBar; this.button = button; } // バックグラウンドの処理前 @Override protected void onPreExecute() { button.setEnabled(false); this.progressBar.setMax(100); this.My.setTitle("しばらくお待ち下さい。"); } // バックグラウンド処理 @Override protected Integer doInBackground(Object[] object) { for (int i = 1; i <= 100; i++) { try { // キャンセル時はループを抜ける if (isCancelled()) break; // プログレスバーの処理 publishProgress(i); // なんらかの重い処理 Thread.sleep(50); }catch (Exception e){ e.printStackTrace(); } } return 100; } // バックグラウンドの処理後 @Override protected void onPostExecute(Integer o) { button.setEnabled(true); this.My.setTitle("処理が完了しました。"); } // プログレスバー @Override protected void onProgressUpdate(Integer[] values) { this.progressBar.setProgress(values[0]); } // キャンセル @Override protected void onCancelled() { button.setEnabled(true); this.My.setTitle("キャンセルされました。"); } } public MyAsyncTask my = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 非同期処理の開始 findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { my = null; my = new MyAsyncTask( (AppCompatActivity)MainActivity.this, (ProgressBar)findViewById(R.id.progressBar), (Button)findViewById(R.id.button)); my.execute(); } }); // 非同期処理のキャンセル findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(my != null) { my.cancel(true); my = null; } } }); } }
12. SeekBar/SeekBar(Discrete)の使い方
SeekBar sb = findViewById(R.id.seekBar); sb.setMax(10); // イベント sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { // トラッキング中 @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { } // トラッキング開始 @Override public void onStartTrackingTouch(SeekBar seekBar) { } // トラッキング終了 @Override public void onStopTrackingTouch(SeekBar seekBar) { // アプリタイトルに現在の値を表示する MainActivity.this.setTitle(String.valueOf(seekBar.getProgress())); } });
13. RatingBarの使い方
RatingBar rb = findViewById(R.id.ratingBar); // 星の数の最大数 rb.setNumStars(5); // 星の数 rb.setRating(2); // イベント rb.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() { // 変更後 @Override public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { // アプリタイトルに現在の値を表示する MainActivity.this.setTitle(String.valueOf(rating)); } });
14. SearchViewの使い方
SearchView sv = findViewById(R.id.searchView); // イベント sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() { // クエリーを送信 @Override public boolean onQueryTextSubmit(String query) { // アプリタイトルに現在の値を表示する MainActivity.this.setTitle(query); return false; } // クエリーを編集中 @Override public boolean onQueryTextChange(String newText) { return false; } });
15. Spinnerの使い方
Spinner sp = findViewById(R.id.spinner); // アダプターの作成 ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // アイテムの追加 adapter.add("みかん"); adapter.add("りんご"); adapter.add("めろん"); // スピナーにアダプターを設定する sp.setAdapter(adapter); // イベント sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { // アイテムを選択 @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { Spinner spinner = (Spinner)parent; // 選択中のアイテムのテキスト String text = spinner.getSelectedItem().toString(); // 選択中のアイテムのインデックス String pos = String.valueOf(position); // アプリのタイトルに表示する MainActivity.this.setTitle(pos + " : " + text); } // アイテムが選択されていない @Override public void onNothingSelected(AdapterView<?> parent) { } });
16. ListViewの使い方
ListView lv = findViewById(R.id.listview); // アダプターの作成 ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1); // アイテムの追加 adapter.add("みかん"); adapter.add("りんご"); adapter.add("めろん"); // リストビューにアダプターを設定する lv.setAdapter(adapter); // イベント lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { // アイテムクリック @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { ListView listview = (ListView)parent; // 選択中のアイテムのテキスト String text = listview.getItemAtPosition(position).toString(); // 選択中のアイテムのインデックス String pos = String.valueOf(position); // アプリのタイトルに表示する MainActivity.this.setTitle(pos + " : " + text); } });
スポンサーリンク
関連記事
公開日:2018年05月20日
記事NO:02658