Android studio - 在一个页面上创建三个独立的时间微调器。 [英] Android studio - creating three independent time spinners on one page.

查看:108
本文介绍了Android studio - 在一个页面上创建三个独立的时间微调器。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,



请有人帮帮我吗?



我一直在苦苦挣扎几天知道让三个独立工作的时间戳工作在我的Android Studio应用程序的单个页面上工作。



目前我甚至无法让这两个时间戳工作者彼此独立工作我只是不明白为什么。



任何建议都将不胜感激。



Sarah



我尝试过:



Hi All,

Please could someone help me?

I have been struggling for days know to get three independently working timepickers to work on a single page on my Android Studio app.

At present I cannot even get these two timepickers to work independently of each other and I just don't understand why.

Any advice would be greatly appreciated.

Sarah

What I have tried:

import java.util.Calendar;

import android.app.TimePickerDialog;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.InputType;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.TimePicker;

public class MainActivity extends AppCompatActivity implements OnClickListener {

    private EditText time1Text, time2Text;

    private int mHour, mMinute;

    private TimePickerDialog time1TimePickerDialog;
    private TimePickerDialog time2TimePickerDialog;

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

        time1Text = (EditText) findViewById(R.id.etTime1);
        time1Text.setInputType(InputType.TYPE_NULL);
        time1Text.requestFocus();

        time2Text = (EditText) findViewById(R.id.etTime2);
        time2Text.setInputType(InputType.TYPE_NULL);

        time1Text.setOnClickListener(this);
        time2Text.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {

        // Get Current Time
        final Calendar c = Calendar.getInstance();
        mHour = c.get(Calendar.HOUR_OF_DAY);
        mMinute = c.get(Calendar.MINUTE);

        // Launch Time Picker Dialog
        time1TimePickerDialog = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {

            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

                time1Text.setText(hourOfDay + ":" + minute);
                    }
                }, mHour, mMinute, false);
        time1TimePickerDialog.show();
    }
}

推荐答案

onTimeSet()内部方法,你只使用 time1Text



在你当前的实现中,查看传递给的对象onClick()是被点击的 EditText 。考虑到这一点,我的建议如下:



Inside of the onTimeSet() method, you are only using time1Text.

In your current implementation, the View object that is passed to onClick() is the EditText that was clicked. Taking that into consideration, my suggestion would be something like:

@Override
public void onClick(View v) 
{
    // Get Current Time
    Calendar c = Calendar.getInstance();
    mHour = c.get(Calendar.HOUR_OF_DAY);
    mMinute = c.get(Calendar.MINUTE);
 
    // Launch Time Picker Dialog
    TimePickerDialog tpd = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() 
    {
        @Override
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) 
        {
            ((EditText) v).setText(hourOfDay + ":" + minute);
        }
    }, mHour, mMinute, false);

    tpd.show();
}


发送到查看对象onClick()方法是单击的 EditText 小部件。用以下内容区分它们:

The View object that is sent to the onClick() method is the EditText widget that was clicked on. Differentiate between them with something like:
EditText et = (EditText) v;
if (et.getId() == R.id.etTime1)
    ;
else if (et.getId() == R.id.etTime2)
    ;


这篇关于Android studio - 在一个页面上创建三个独立的时间微调器。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆