Android Date EditText имеет разную компоновку между эмулятором и android телефоном - PullRequest
1 голос
/ 19 января 2020

Я новичок в Android Программирование, просто изучение веревок. Попытка создания моего первого приложения, и у меня возникла проблема с определенной активностью. На эмуляторе все выглядит отлично (Pixel 2). Так что, как и все остальные, я скачал приложение на свое персональное устройство (Samsung Galaxy S8). У этого действия возникла проблема с вводом даты, поэтому (/) необходимо, я, конечно, могу найти его на клавиатуре эмулятора, но не могу найти его на своем телефоне, как показано на снимках экрана. Входами EditText являются date|datetime|time.

. Приношу извинения за доставленные неудобства. Спасибо.

XML КОД

    <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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"
    tools:context=".AddItems">

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="36dp"
        android:layout_marginLeft="36dp"
        android:text="Price:"
        app:layout_constraintBottom_toBottomOf="@+id/PriceEditText"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@+id/PriceEditText" />

    <EditText
        android:id="@+id/NameEditText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPersonName"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.181"
        app:layout_constraintStart_toEndOf="@+id/textView"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.192" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="36dp"
        android:layout_marginLeft="36dp"
        android:text="Name:"
        app:layout_constraintBottom_toBottomOf="@+id/NameEditText"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@+id/NameEditText" />

    <EditText
        android:id="@+id/PriceEditText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="number"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.22"
        app:layout_constraintStart_toEndOf="@+id/textView3"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.411" />

    <TextView
        android:id="@+id/textView7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="36dp"
        android:layout_marginLeft="36dp"
        android:layout_marginBottom="198dp"
        android:text="Date:"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

    <TextView
        android:id="@+id/textView8"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="36dp"
        android:text="Add your Items:"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/addButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Add"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.89" />

    <Space
        android:id="@+id/space"
        android:layout_width="22dp"
        android:layout_height="0dp"
        android:layout_marginTop="8dp"
        android:layout_marginBottom="8dp"
        app:layout_constraintBottom_toTopOf="@+id/PriceEditText"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/NameEditText" />

    <Space
        android:id="@+id/space2"
        android:layout_width="0dp"
        android:layout_height="8dp"
        android:layout_marginStart="203dp"
        android:layout_marginLeft="203dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="203dp"
        android:layout_marginRight="203dp"
        android:layout_marginBottom="8dp"
        app:layout_constraintBottom_toTopOf="@+id/NameEditText"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView8" />

    <Space
        android:id="@+id/space3"
        android:layout_width="3dp"
        android:layout_height="0dp"
        android:layout_marginStart="3dp"
        android:layout_marginLeft="3dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="3dp"
        android:layout_marginRight="3dp"
        app:layout_constraintEnd_toStartOf="@+id/space2"
        app:layout_constraintStart_toStartOf="@+id/space4"
        app:layout_constraintTop_toBottomOf="@+id/PriceEditText" />

    <Space
        android:id="@+id/space4"
        android:layout_width="15dp"
        android:layout_height="0dp"
        android:layout_marginBottom="8dp"
        app:layout_constraintBottom_toTopOf="@+id/addButton"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

    <EditText
        android:id="@+id/QuantityEditText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginLeft="16dp"
        android:ems="10"
        android:inputType="date|datetime|time"
        app:layout_constraintBottom_toTopOf="@+id/textView7"
        app:layout_constraintStart_toEndOf="@+id/textView7"
        app:layout_constraintTop_toTopOf="@+id/textView7"
        app:layout_constraintVertical_bias="0.577" />

</androidx.constraintlayout.widget.ConstraintLayout>

JAVA КОД КЛАССА

package com.example.smartids1;

import androidx.appcompat.app.AppCompatActivity;

import android.content.ClipData;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

public class AddItems extends AppCompatActivity {
    String Name;
    int Price;
    //Date Quantity;
    SimpleDateFormat Quantity = new SimpleDateFormat("dd/mm/yyyy");
    EditText NameEditText;
    EditText PriceEditText;
    EditText QuantityEditText;
    Button additem;
    Items AddedItem;
    Date myDate;
    Shop shop;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_items);
        loadData();
        NameEditText = (EditText) findViewById(R.id.NameEditText);
        PriceEditText = (EditText) findViewById(R.id.PriceEditText);
        QuantityEditText = (EditText) findViewById(R.id.QuantityEditText);
        additem = (Button) findViewById(R.id.addButton);
        additem.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                    Name=NameEditText.getText().toString();
                    Price=Integer.parseInt(PriceEditText.getText().toString());
                try {
                    myDate = Quantity.parse(QuantityEditText.getText().toString());
                } catch (ParseException e) {
                    e.printStackTrace();
                }
                //Quantity = new SimpleDateFormat("dd/mm/yyyy").parse(QuantityEditText.toString().trim(),new ParsePosition(1));
                AddedItem = new Items(Name, Price, myDate);

                MainActivity.getMainShop().addItem(AddedItem);
                saveData();


            }
        });


    }

    public  void loadData(){
        SharedPreferences sharedPreferences = getSharedPreferences("shared prefrences", MODE_PRIVATE);
        Gson gson = new Gson();
        String json = sharedPreferences.getString("task list", null);
        Type type = new TypeToken<ArrayList<Items>>(){}.getType();
        MainActivity.getMainShop().ShopItems = gson.fromJson(json, type);
        if(MainActivity.getMainShop().ShopItems==null)
            MainActivity.getMainShop().ShopItems = new ArrayList<>();

    }
    public void saveData(){
        SharedPreferences sharedPreferences = getSharedPreferences("shared prefrences", MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        Gson gson = new Gson();
        String json = gson.toJson(MainActivity.getMainShop().ShopItems);
        editor.putString("task list", json);
        editor.apply();
    }

}

Изображения

Android Studio Emulator (Pixel 2)

Galaxy S8 (Pesronal Device)

...