Почему элементы XML не отображаются в моем эмуляторе? - PullRequest
0 голосов
/ 23 декабря 2018

Я создал простое приложение для студии Android, чтобы практиковаться и узнавать больше.Но элементы в XML не видны в эмуляторе.Как я могу решить эту проблему?

Я исследую, но не нашел ответа.

Макет XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical"
    tools:context=".MainActivity"
    android:padding="16dp">

<TextView
    android:id="@+id/text_welcome"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/text_welcome"
    android:textSize="26sp"/>

<TextView
    android:id="@+id/text_instructions"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:text="@string/text_instruction"
    android:textSize="20sp" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:gravity="center">

    <EditText
        android:id="@+id/edit_feet"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="4"
        android:hint="@string/edit_feet"
        android:inputType="number" />

    <EditText
        android:id="@+id/edit_inchee"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="12dp"
        android:ems="4"
        android:hint="@string/edit_inches"
        android:inputType="number" />

    <EditText
        android:id="@+id/edit_pounds"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="12dp"
        android:ems="4"
        android:hint="@string/edit_pounds"
        android:inputType="number" />

</LinearLayout>

<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/boutton_calculate_bmi"
    android:text="@string/boutton_cal_bmi"/>
<TextView
    android:id="@+id/text_result"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:text="@string/text_result"
    android:textSize="18sp" />

</LinearLayout>

Код активности:

package com.applike.bmi;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import org.w3c.dom.Text;


public class MainActivity extends AppCompatActivity {

   TextView text_result;
   EditText edit_feet , edit_inches , edit_pounds;
   Button button_calculate_bmi;



   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);

       /*
       edit_feet = (EditText)findViewById(R.id.edit_feet);
       edit_inches = (EditText)findViewById(R.id.edit_inchee);
       edit_pounds = (EditText)findViewById(R.id.edit_pounds);
       button_calculate_bmi = (Button)findViewById(R.id.boutton_calculate_bmi);
       text_result = (TextView)findViewById(R.id.text_result);


       button_calculate_bmi.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View view) {
               String results="Results: ";
              // int feet = Integer.parseInt(edit_feet.getText().toString());
               if(edit_feet.getText().length() == 0){
                   edit_feet.setError("Please enter a #.");
                   results += "Oops! There was an error. ";
               }
               else if(edit_feet.getText().length() > 1){
                   edit_feet.setError("Too many digits");
                   results += "Our records indicate that your cannot possibily" +
                           " be thay tall. ";
               }
               else {
                   results += "The length of feet is " +
                           edit_feet.getText().length();
               }
               text_result.setText(results);
           }
       });

*/
   }
}

Android Studio screenshot. XML preview showing layout, emulator is blank

Что-то не так в моем файле XML?Пожалуйста, предоставьте мне решение для этого.Как мне справиться с этим?

Ответы [ 3 ]

0 голосов
/ 24 декабря 2018

Вам необходимо установить макет в методе onCreate () , например:

setContentView(R.layout.activity_main_new);
0 голосов
/ 29 декабря 2018

Вы не надуваете свой макет в своей деятельности. Вам нужно использовать метод setContentView () в onCreate (), чтобы накачать ваш макет примерно так, как он будет виден на устройстве:

setContentView(R.layout.activity_main_new); //activity_main_new defines your xml layout.

Если выВы хотите накачать свой макет внутри своего фрагмента. Вам нужно определить свой макет в методе Fragment onCreateView ():

public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    return inflater.inflate(R.layout.homecredit, container, false); //where home credit is your layout file, container is root layout and attachToRoot is a boolean value
}
0 голосов
/ 24 декабря 2018

Вы не надуваете свой макет в своей Деятельности, поэтому он не отображается.Вам нужно использовать функцию setContentView() в onCreate(), чтобы надуть ваш макет следующим образом:

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

    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...