【问题标题】:How to make a TextView display a DatePicker in android如何使 TextView 在 android 中显示 DatePicker
【发布时间】:2018-04-07 02:23:58
【问题描述】:

我是开发 android 的新手,在触摸 Textview 后我无法让 TextView 显示 DatePicker。

XML的代码在这里

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="dfx.com.asistentepredicaciondfx.MainActivity"
    tools:showIn="@layout/app_bar_main">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintRight_toLeftOf="@+id/textView2"
        tools:layout_constraintTop_creator="1"
        tools:layout_constraintRight_creator="1"
        android:layout_marginEnd="18dp"
        app:layout_constraintTop_toBottomOf="@+id/textView2" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Dia"
        tools:layout_constraintTop_creator="1"
        tools:layout_constraintBottom_creator="1"
        app:layout_constraintBottom_toTopOf="@+id/textView3"
        android:layout_marginTop="67dp"
        tools:layout_constraintLeft_creator="1"
        android:layout_marginBottom="66dp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintLeft_toRightOf="@+id/textView3"
        app:layout_constraintVertical_bias="1.0" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Horas"
        android:layout_marginStart="158dp"
        app:layout_constraintBaseline_toBaselineOf="@+id/textView4"
        tools:layout_constraintBaseline_creator="1"
        tools:layout_constraintLeft_creator="1"
        app:layout_constraintLeft_toLeftOf="parent" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="0"
        tools:layout_constraintTop_creator="1"
        android:layout_marginStart="40dp"
        android:layout_marginTop="150dp"
        tools:layout_constraintLeft_creator="1"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintLeft_toRightOf="@+id/textView3" />

</android.support.constraint.ConstraintLayout>

我希望 TextView2 显示 DatePciker。

如果有人可以帮助我举个例子,我将不胜感激。我几乎可以肯定我需要创建另一个课程,但我不知道在课程中放什么,这就是我需要更多帮助的事情。我不太了解Android,但我知道一点Java。请尽量简单地解释,因为英语也不是我的主要语言。

XML 的 Java 代码

package dfx.com.asistentepredicaciondfx;

import android.app.Activity;
import android.app.DatePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.DatePicker;
import android.widget.TextView;

import java.util.Calendar;

/**
 * Created by Diego Utreras on 2/3/2018.
 */

public class ContentMain extends Activity implements View.OnClickListener {
    TextView dia;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.content_main);

        TextView dia = (TextView) findViewById(R.id.textView2);
        dia.setOnClickListener(this);
    }


    @Override
    public void onClick(View view) {
        new DatePickerDialog(ContentMain.this, R.style.DialogTheme, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                //DO SOMETHING


                dia.setText(String.valueOf(dayOfMonth)+"/"+String.valueOf(monthOfYear+1)+"/"+String.valueOf(year));

            }
        }, 2015, 02, 26).show();

    }
}

【问题讨论】:

标签: android


【解决方案1】:

在点击时添加它

    new DatePickerDialog(ContentMain.this, R.style.DialogTheme, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                //DO SOMETHING

                dia.setText(String.valueOf(dayOfMonth)+"/"+String.valueOf(monthOfYear+1)+"/"+String.valueOf(year));

            }
        }, 2015, 02, 26).show();

R.style.DialogTheme 如下所示,将其添加到 style.xml 中

       <style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog">
      <item name="colorAccent">@color/colorPrimary</item>
       </style>

【讨论】:

  • 我按照你说的做了,但现在它说无法解析符号直径。也可以多解释一下DialogTheme部分吗,我不是很懂。
  • dia 是在 questian 中设置的日期更新的文本视图。当您选择日期时调用日期集,您可以在我刚刚更新 textview(dia) 的日期执行任何操作选定的 date.Dialog 主题仅用于为对话框添加主题颜色只需在 style.xml 中添加那段代码
  • 我知道 dia 应该在这行代码中更新 dia.setText(String.valueOf(dayOfMonth)+"/"+String.valueOf(monthOfYear+1)+"/" +String.valueOf(年));但是当我在 onclick 方法中有这一行时,它说它找不到符号。
  • 声明上面的变量 onCreate 你在 onCreate 里面声明了 'dia' 它不能被访问。在下面的行中删除它: public class ContentMain extends Activity implements View.OnClickListener {
  • 我按照你说的做了,但是当我在模拟器中运行应用程序时,当我点击 TextView2 时它没有显示任何内容。我是否需要对活动主体做一些事情,或者问题仅在 contentmain 类中。我将更新我的 contentmain 类的 Java 代码
【解决方案2】:

尝试将 EditTest 与 android:inputType="date" 一起使用,这对我有用。

   <EditText
        android:id="@+id/editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="date" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-29
    • 2019-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多