ホーム > カテゴリ > Java・Android >

コピペできる各種コントロールの使い方 [Android Studio]

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