首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TimePicker + CheckBox

TimePicker + CheckBox
EN

Stack Overflow用户
提问于 2013-06-03 17:50:57
回答 2查看 1.2K关注 0票数 0

我的应用程序中有一个TimePicker,我想在它上面添加一个CheckBox,如果它检查了,TimePicker将不会工作。这是我的TimePickerhttp://developer.android.com/guide/topics/ui/controls/pickers.html#TimePicker

我该怎么做呢?我希望timePicker看起来与示例相同。

EN

回答 2

Stack Overflow用户

发布于 2013-06-13 16:15:01

我将把整个项目也放在这里,供其他人使用,如果他们曾经需要它:简短的描述:一个程序,让你得到用户设置的时间并显示在页面底部,当你按下Done button.Used intent从一个活动转到另一个活动后。

-主要活动

代码语言:javascript
复制
package com.example.chxboxtest;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity implements OnClickListener {

private Button start_intent_button;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    start_intent_button = (Button) findViewById(R.id.start_intent_button);
    start_intent_button.setOnClickListener(this);

}

@Override
public void onClick(View v) {

    switch (v.getId()) {

    case R.id.start_intent_button: {

        Intent intent = new Intent(this,TimePickerTest.class);
        startActivity(intent);

    }
        break;
    }

}

}

代码语言:javascript
复制
<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"
 >  

<Button 
    android:id="@+id/start_intent_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Start Intent Time Picker"
    android:layout_centerInParent="true"
    />


</RelativeLayout>

-TimePicker类

代码语言:javascript
复制
  package com.example.chxboxtest;

 import android.app.Activity;
 import android.os.Bundle;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.widget.Button;
 import android.widget.CheckBox;
 import android.widget.TextView;
 import android.widget.TimePicker;
 import android.widget.Toast;


 public class TimePickerTest extends Activity implements OnClickListener{

private CheckBox cBox;
private TimePicker tPicker;
private TextView showTime;
private Button done;

private String hour;
private String minute;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.time_picker_layout);

    initButtons();
}



private void initButtons() {

    tPicker = (TimePicker) findViewById(R.id.time_picker);
    showTime = (TextView) findViewById(R.id.get_time);
    done = (Button)findViewById(R.id.done);
    cBox = (CheckBox) findViewById(R.id.time_picker_checkbox);
    cBox.setOnClickListener(this);
    done.setOnClickListener(this);
}

@Override
public void onClick(View v) {

    switch (v.getId()) {

    //If check enable or disble timePicker
    case R.id.time_picker_checkbox: {

        if (((CheckBox) v).isChecked()) {
            Toast.makeText(this, "CHECKED", Toast.LENGTH_SHORT).show();
            tPicker.setEnabled(false);
        } else {
            Toast.makeText(this, "NOT CHECKED", Toast.LENGTH_SHORT).show();
            tPicker.setEnabled(true);
        }
    }
        break;

//If Done button pressed get time selected by user

    case R.id.done:{


        tPicker.clearFocus();
        // re-read the values, in my case i put them in a Time object.
        hour   = tPicker.getCurrentHour().toString();
        minute = tPicker.getCurrentMinute().toString();

        if(tPicker.getCurrentMinute().intValue() < 10){

            String setTimeText = hour+ " : " + "0" + minute;
            showTime.setText(setTimeText);
        }else{
            String setTimeText = hour+ " : " + minute;
            showTime.setText(setTimeText);
        }





    }
        break;

    default:
        break;

    }

}

  }

-TimerPicker XML

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
    android:id="@+id/timer_textview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/time_picker"
    android:layout_toRightOf="@+id/time_picker_checkbox"
    android:text="Check this to Cancel Alarm" />

<CheckBox
    android:id="@+id/time_picker_checkbox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/time_picker"
    android:layout_centerHorizontal="true" />

<TimePicker
    android:id="@+id/time_picker"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true" />

<Button
    android:id="@+id/done"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/time_picker"
    android:layout_centerHorizontal="true"
    android:gravity="center"
    android:text="Done" />

<TextView
    android:id="@+id/get_time"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:gravity="center_horizontal"
    android:text="Time"
    android:textColor="#FF0000"
    android:textSize="25sp" />

 </RelativeLayout>

-Manifest.xml

代码语言:javascript
复制
     **<activity
        android:name="com.example.chxboxtest.TimePickerTest"
        android:configChanges="orientation|keyboardHidden">
    </activity>**

不要忘记将TimePicker类添加为activity。BestPracice在strings.xml中添加所有xml文本

干杯

票数 2
EN

Stack Overflow用户

发布于 2013-06-10 18:55:25

下面是一个功能示例,其中包含了您的所有需求。经过测试且100%正常工作:)

将这段代码放入xml:

代码语言:javascript
复制
<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"
 >  


<TextView
    android:id="@+id/timer_textview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Check this to Cancel Alarm"
    android:layout_above="@+id/time_picker"
    android:layout_toRightOf="@+id/time_picker_checkbox"
    />

<CheckBox 
    android:id="@+id/time_picker_checkbox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/time_picker"
    />

<TimePicker 
    android:id="@+id/time_picker"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    />

下面是你的java代码:

代码语言:javascript
复制
 package com.example.chxboxtest;

  import android.app.Activity;
  import android.os.Bundle;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.widget.CheckBox;
  import android.widget.TimePicker;
  import android.widget.Toast;

  public class MainActivity extends Activity implements OnClickListener {

private CheckBox cBox;
private TimePicker tPicker;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    initButtons();

}

private void initButtons() {

    tPicker = (TimePicker) findViewById(R.id.time_picker);

    cBox = (CheckBox) findViewById(R.id.time_picker_checkbox);
    cBox.setOnClickListener(this);

}

@Override
public void onClick(View v) {

    switch (v.getId()) {

    case R.id.time_picker_checkbox: {

        if (((CheckBox) v).isChecked()) {

      Toast.makeText(this, "Deactivate",Toast.LENGTH_SHORT).show();
            tPicker.setEnabled(false);
        } else {
            Toast.makeText(this, "Activate",Toast.LENGTH_SHORT).show();
            tPicker.setEnabled(true);
        }

    }

        break;

    default:
        break;

    }

}

  }

如果您想在自定义对话框中使用此示例,请让我知道。

干杯,

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16894019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档