スイッチボタン
トグルボタンからスイッチボタンにバージョンアップしたようです。
APIレベルが14から実装できるようになったようです。
package com.example.test.test59;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.RelativeLayout;
//TextViewを使用する宣言
import android.widget.Switch;
import android.widget.TextView;
//クリックイベント用に追加
import android.view.View.OnClickListener;
public class MainActivity extends AppCompatActivity implements OnClickListener {
//setId用の管理番号
private int mNo1;
private int mNo2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
RelativeLayout layout = new RelativeLayout(this);
setContentView(layout);
//座標の初期設定
int x=0;
int y=0;
int width=0;
int height=0;
//配置を設定
RelativeLayout.LayoutParams obj1 = null;
mNo1 = View.generateViewId();
mNo2 = View.generateViewId();
x=50;
y=50;
height=60;
//ボタンの設置
width=200;
obj1=getLayoutObject(width, height);
obj1.leftMargin=x;
obj1.topMargin=y;
Switch aSwitch=new Switch(this);
aSwitch.setId(mNo1);
aSwitch.setOnClickListener(this);
aSwitch.setTextOn("オン");
aSwitch.setTextOff("オフ");
aSwitch.setChecked(true);
layout.addView(aSwitch,obj1);
aSwitch=null;
y+=height+10;
//ラベルを設置
width=300;
obj1 = getLayoutObject(width, height);
obj1.leftMargin=x;
obj1.topMargin=y;
TextView textView=new TextView(this);
textView.setId(mNo2);
textView.setText("ここに結果が表示されます。");
layout.addView(textView, obj1);
textView=null;
}
@Override
//ボタンがクリックされたら実行されます。
public void onClick(View view) {
int iResult = 0;
int iViewId=0;
iViewId=view.getId();
if(iViewId==mNo1)
{
judgeSwitchCheck();
}
}
private void judgeSwitchCheck()
{
boolean result=false;
Switch aSwtich = (Switch)findViewById(mNo1);
result=aSwtich.isChecked();
setTextViewText(result);
}
private void setTextViewText(boolean result)
{
String sData = "";
if(result==true)
{
sData="オンが表示されています。";
}
else
{
sData="オフが表示されています。";
}
TextView textView=(TextView)findViewById(mNo2);
textView.setText(sData);
textView=null;
}
//レイアウトを決定するオブジェクトを生成し渡します
private RelativeLayout.LayoutParams getLayoutObject(int width,int height)
{
return new RelativeLayout.LayoutParams(width, height);
}
}
|
オンとオフの表示は
オン→setTextOn
オフ→setTextOff
によって設定します。
初期表示のチェックオンオフはsetCheckedで設定します。
trueがオンでfalseがオフとなります。
setOnClickListenerイベントでイベントを取得できます。
チェックの状況はisCheckedで取得できます。
実行結果
|
|