カテゴリー:
はじめてのAndroidプログラミング 改訂版
閲覧数:451 配信日:2018-05-21 10:38
ic_mysize.xml
ベクタ形式の画像
・「点と点の座標」および「それを結ぶ線または面の情報」で図形を表現したグラフィック
・「書籍掲載内容」と「サンプルコード内容」が若干異なる
・Android Studio 3.1.2 で、パレットの「Widgets」内にSpinnerが表示されない
▼com/example/username/mysize/MainActivity.java
package com.example.username.mysize;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
private static final String NECK = "NECK";
private static final String SLEEVE = "SLEEVE";
private static final String WAIST = "WAIST";
private static final String INSEAM = "INSEAM";
private EditText editNeck;
private EditText editSleeve;
private EditText editWaist;
private EditText editInseam;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SharedPreferences pref =
PreferenceManager.getDefaultSharedPreferences(this);
String neck = pref.getString(NECK, "");
String sleeve = pref.getString(SLEEVE, "");
String waist = pref.getString(WAIST, "");
String inseam = pref.getString(INSEAM, "");
editNeck = (EditText) findViewById(R.id.neck);
editSleeve = (EditText) findViewById(R.id.sleeve);
editWaist = (EditText) findViewById(R.id.waist);
editInseam = (EditText) findViewById(R.id.inseam);
editNeck.setText(neck);
editSleeve.setText(sleeve);
editWaist.setText(waist);
editInseam.setText(inseam);
findViewById(R.id.save).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
saveData();
}
});
findViewById(R.id.height_button)
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent =
new Intent(MainActivity.this, HeightActivity.class);
startActivity(intent);
}
});
}
private void saveData() {
SharedPreferences pref =
PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = pref.edit();
editor.putString(NECK, editNeck.getText().toString());
editor.putString(SLEEVE, editSleeve.getText().toString());
editor.putString(WAIST, editWaist.getText().toString());
editor.putString(INSEAM, editInseam.getText().toString());
editor.commit();
}
}
▼com/example/username/mysize/HeightActivity.java
package com.example.username.mysize;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.SeekBar;
import android.widget.Spinner;
import android.widget.TextView;
public class HeightActivity extends AppCompatActivity {
public static final String HEIGHT = "HEIGHT";
private TextView mHeight;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_height);
mHeight = (TextView) findViewById(R.id.height);
SharedPreferences pref
= PreferenceManager.getDefaultSharedPreferences(this);
int height = pref.getInt(HEIGHT, 160);
mHeight.setText(String.valueOf(height));
/// スピナーの処理
Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
// 一覧から1つを選んだ時の処理
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position,
long id) {
// 選ばれた項目を取得してTextViewに表示
Spinner spinner = (Spinner) parent;
String item = (String) spinner.getSelectedItem();
if (!item.isEmpty()) {
mHeight.setText(item);
}
}
// 一覧で何も選択されなかった時の処理
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
/// シークバーの処理
SeekBar seekBar = (SeekBar) findViewById(R.id.seekBar);
seekBar.setProgress(height);
seekBar.setOnSeekBarChangeListener(
new SeekBar.OnSeekBarChangeListener() {
// シークバーの値が変更された
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// 変更された値をintから文字列に変換してTextViewに表示
String value = String.valueOf(progress);
mHeight.setText(value);
}
// シークバーのスライド開始
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
// シークバーのスライド終了
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
/// ラジオボタンの処理
RadioGroup radio = (RadioGroup) findViewById(R.id.radioGroup);
radio.setOnCheckedChangeListener(
new RadioGroup.OnCheckedChangeListener() {
// ラジオグループのチェック状態が変更された時に呼び出されます
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// 選択されたラジオボタンのリソースIDより、ラジオボタンを取得する
RadioButton radioButton =
(RadioButton) findViewById(checkedId);
String value = radioButton.getText().toString();
mHeight.setText(value);
}
});
}
@Override
protected void onPause() {
super.onPause();
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = pref.edit();
editor.putInt(HEIGHT, Integer.parseInt(mHeight.getText().toString()));
editor.commit();
}
}