web-dev-qa-db-ja.com

トグルボタンの例

トグルボタンを使用してアプリケーションを開発しています。EditTextに1または0を入力しました。ボタンがクリックされたときに、1を入力すると、トグルボタンはTOGGLE ON、0を入力すると、トグルボタンにTOGGLE OFF。ボタンがクリックされたときにトグル値を取得できません。

私のコードは:

public class MainActivity extends Activity {

  String editString="";

  Button btn;
  EditText ed;
  ToggleButton toggle;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btn = (Button)findViewById(R.id.btn);
    ed  = (EditText)findViewById(R.id.ed);
    toggle = (ToggleButton)findViewById(R.id.toggBtn);

    editString = ed.getText().toString();

    btn.setOnClickListener(new OnClickListener() {

      @Override
      public void onClick(View v) {
        // TODO Auto-generated method stub
        toggle.toggle();
        if(editString.equals("1")){

          toggle.setTextOff("TOGGLE ON");

        }
        else if(editString.equals("0")){

          toggle.setTextOn("TOGGLE OFF");

        }
      }
    });
  }
}

xmlファイル:

<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:paddingBottom="@dimen/activity_vertical_margin"
Android:paddingLeft="@dimen/activity_horizontal_margin"
Android:paddingRight="@dimen/activity_horizontal_margin"
Android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" 
Android:orientation="vertical">

 <EditText
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:id="@+id/ed"/>
 <Button  Android:layout_width="wrap_content"
         Android:layout_height="wrap_content"
         Android:id="@+id/btn"
         Android:text="Summit"/>
  <ToggleButton
        Android:id="@+id/toggBtn"
        Android:layout_below="@+id/text6"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"

        Android:gravity="center"
         />  
6
Durga

クリックリスナからtoggle.toggle();行を削除するだけで、toggle()メソッドは常にトグルボタンの値をリセットします。

また、文字列変数でEditTextの値を取得しようとしているので、onCreate()で値を取得するのと常に同じなので、EditTextを直接使用してonClickリスナーでのその値。

すぐに動作するようにコードを変更してください。

  btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
                       //toggle.toggle();
            if ( ed.getText().toString().equalsIgnoreCase("1")) {

                toggle.setTextOff("TOGGLE ON");
                toggle.setChecked(true);
            } else if ( ed.getText().toString().equalsIgnoreCase("0")) {

                toggle.setTextOn("TOGGLE OFF");
                toggle.setChecked(false);

            }
        }
    });
14
GrIsHu
<ToggleButton 
    Android:id="@+id/togglebutton"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:textOn="Vibrate on"
    Android:textOff="Vibrate off"
    Android:onClick="onToggleClicked"/>

このレイアウトをホストするアクティビティ内で、次のメソッドがクリックイベントを処理します。

public void onToggleClicked(View view) {
    // Is the toggle on?
    boolean on = ((ToggleButton) view).isChecked();

    if (on) {
        // Enable vibrate
    } else {
        // Disable vibrate
    }
}
16
Jogendra Gouda

Googleガイドに従う必要があります。

ToggleButton toggle = (ToggleButton) findViewById(R.id.togglebutton);
toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if (isChecked) {
            // The toggle is enabled
        } else {
            // The toggle is disabled
        }
    }
});

ドキュメントを確認できます here

3

このトグルボタンを試してください

test_activity.xml

<ToggleButton 
Android:id="@+id/togglebutton" 
Android:layout_width="100px" 
Android:layout_height="50px" 
Android:layout_centerVertical="true" 
Android:layout_centerHorizontal="true"
Android:onClick="toggleclick"/>

Test.Java

public class Test extends Activity {

private ToggleButton togglebutton;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    togglebutton = (ToggleButton) findViewById(R.id.togglebutton);
}

public void toggleclick(View v){
    if(togglebutton.isChecked())
        Toast.makeText(TestActivity.this, "ON", Toast.LENGTH_SHORT).show();
    else
        Toast.makeText(TestActivity.this, "OFF", Toast.LENGTH_SHORT).show();
    }
}
3
NPSDPM
@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    editString = ed.getText().toString();
    if(editString.equals("1")){

        toggle.setTextOff("TOGGLE ON");
        toggle.setChecked(true);

    }
    else if(editString.equals("0")){

        toggle.setTextOn("TOGGLE OFF");
        toggle.setChecked(false);

    }
}
1
Harsh Goswami

これを動かして

 btn.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
     editString = ed.getText().toString();

onClickの中

また、toogleボタンの状態は、0または1

http://developer.Android.com/guide/topics/ui/controls/togglebutton.html

例:

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:paddingBottom="@dimen/activity_vertical_margin"
    Android:paddingLeft="@dimen/activity_horizontal_margin"
    Android:paddingRight="@dimen/activity_horizontal_margin"
    Android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        Android:id="@+id/button1"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignParentBottom="true"
        Android:layout_centerHorizontal="true"
        Android:layout_marginBottom="20dp"
        Android:text="Button" />

    <EditText
        Android:id="@+id/editText1"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_centerHorizontal="true"
        Android:layout_marginTop="26dp"
        Android:ems="10" >

        <requestFocus />
    </EditText>

    <Switch
        Android:id="@+id/switch1"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignRight="@+id/editText1"
        Android:layout_below="@+id/editText1"
        Android:layout_marginTop="51dp"
        Android:text="Switch" />

    <ToggleButton
        Android:id="@+id/togglebutton"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignLeft="@+id/button1"
        Android:layout_below="@+id/switch1"
        Android:layout_marginTop="58dp"
        Android:onClick="onToggleClicked"
        Android:textOff="Vibrate off"
        Android:textOn="Vibrate on" />

</RelativeLayout>

MainActivity.Java

public class MainActivity extends Activity implements OnClickListener {

    EditText ed;
    Switch sb;
    ToggleButton tb;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ed = (EditText) findViewById(R.id.editText1);
        Button b = (Button) findViewById(R.id.button1);
        sb = (Switch)findViewById(R.id.switch1);
        tb = (ToggleButton)findViewById(R.id.togglebutton);
        b.setOnClickListener(this);
    }


    @Override
    public void onClick(View v) {
        String s = ed.getText().toString();
         if(s.equals("1")){

             tb.setText("TOGGLE ON");
             tb.setActivated(true);
             sb.setChecked(true);

         }
         else if(s.equals("0")){

             tb.setText("TOGGLE OFF");
             tb.setActivated(false);
             sb.setChecked(false);

    }

    }
     }

スナップ

enter image description here

enter image description here

0
Raghunandan

1がオプションの1つが選択され、0が他のオプションである場合、試みていることはラジオボタンと意味的に同じだと思います。

Androidデフォルトで提供されるラジオボタンを使用することをお勧めします。

使用方法はこちらです http://www.mkyong.com/Android/android-radio-buttons-example/

およびAndroidドキュメントはこちら-

http://developer.Android.com/guide/topics/ui/controls/radiobutton.html

ありがとう。

0
Neeraj Shukla