二进制XML文件行#24:错误膨胀类android.widget.Spinner

时间:2018-06-12 04:59:51

标签: android

我是Android的新手制造的转换器应用程序在Xperia z2和三星j2上工作正常,但是当我尝试在Xperia z1上测试它时崩溃。该应用程序根本没有启动。 我经历了很多帖子,但无法解决问题 它给了我这个错误:

java.lang.RuntimeException: Unable to start activity 
ComponentInfo{com.example.sreyash.uconverter/com.example.sreyash.uconverter
.MainActivity}: android.view.InflateException: Binary XML file line #24: 
Error inflating class android.widget.Spinner at 
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2237)

android.view.LayoutInflater.createView (LayoutInflater.java:620)
com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView 
(PhoneLayoutInflater.java:56)
android.view.LayoutInflater.onCreateView (LayoutInflater.java:669)
android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:694)
android.view.LayoutInflater.rInflate (LayoutInflater.java:755)
android.view.LayoutInflater.inflate (LayoutInflater.java:492)
android.view.LayoutInflater.inflate (LayoutInflater.java:397)
android.view.LayoutInflater.inflate (LayoutInflater.java:353)
com.android.internal.policy.impl.PhoneWindow.setContentView 
(PhoneWindow.java:297)
android.app.Activity.setContentView (Activity.java:1929)
com.example.sreyash.uconverter.MainActivity.onCreate (MainActivity.java:33)
android.app.Activity.performCreate (Activity.java:5231)
android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1087)
android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2201)
android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2286)
android.app.ActivityThread.access$800 (ActivityThread.java:144)
android.app.ActivityThread$H.handleMessage (ActivityThread.java:1246)
android.os.Handler.dispatchMessage (Handler.java:102)
android.os.Looper.loop (Looper.java:212)
android.app.ActivityThread.main (ActivityThread.java:5135)
java.lang.reflect.Method.invokeNative (Method.java)
java.lang.reflect.Method.invoke (Method.java:515)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run 
(ZygoteInit.java:877)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:693)
dalvik.system.NativeStart.main (NativeStart.java)

这是指向以下内容的代码错误:

 <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"
  android:background="@drawable/converter_background"
  tools:context=".MainActivity">

    <ImageButton
    android:id="@+id/length"
    android:layout_width="45dp"
    android:layout_height="45dp"
    android:layout_marginBottom="8dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:onClick="onClick"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.549"
    android:background="@drawable/lengths_symbol" />

    <Spinner
    android:id="@+id/spinner"
    android:layout_width="150dp"
    android:layout_height="30dp"
    android:layout_marginBottom="8dp"
    android:layout_marginTop="8dp"
    android:entries="@android:color/background_light"
    android:popupBackground="@color/colorPrimaryDark"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.949"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.110000014" />

这是主要的活动;

public class MainActivity extends Activity implements 
AdapterView.OnItemSelectedListener{



int mode_flag;
ArrayAdapter<CharSequence> adapter1;
ArrayAdapter<CharSequence> adapter2;
Spinner spinner1;
Spinner spinner2;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

     spinner1=findViewById(R.id.spinner);
     spinner2=findViewById(R.id.spinner2);

    mode_flag=1;
    set_adapter(R.array.Length);
    Lenght.setBackgroundResource(R.drawable.lengths_symbol_clicked);
    Title.setText(R.string.Lenght_title);
    conversion_mode="Length";

    Clear.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(!input.isEmpty()) {
                input = input.substring(0, input.length() - 1);
                Log.d("back", ""+input);
                inputview.setText(input);
            }

            Conversion();
        }
    });
    Clear.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {
            return false;
        }
    });


}

   public void set_adapter(int source){
    adapter1=ArrayAdapter.createFromResource(this, 
   source,android.R.layout.simple_spinner_item);
    adapter2=ArrayAdapter.createFromResource(this, 
source,android.R.layout.simple_spinner_item);
adapter1.setDropDownViewResource
(android.R.layout.simple_spinner_dropdown_item);

adapter2.setDropDownViewResource
(android.R.layout.simple_spinner_dropdown_item);

    spinner1.setAdapter(adapter1);
    spinner1.setOnItemSelectedListener(this);

    spinner2.setAdapter(adapter2);
    spinner2.setOnItemSelectedListener(this);

}

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

First Thing android:entries属性用于将数据绑定到微调器,而不是用于设置颜色。

  

XML方法

首先在String.xml文件中创建国家/地区数组

<div class="chat chat-right ">
   <div class="chat-avatar">
  <a class="avatar" data-toggle="tooltip" href="" data-placement="right" title="Backend">
  <img src="https://www.gravatar.com/avatar/30aa172009d1e4e569d31a54899af0ee.jpg?s=80&amp;d=mm&amp;r=g" alt="Backend's Avatar">
  </a>
   </div>
   <div class="chat-body">
  <div class="chat-content">
     <p>Hey I&#039;d like more information regarding this property!</p>
     <time class="chat-time" datetime="2018-06-11 16:06:39"> 1 hour ago <i class="fa fa-check m-l-5 text-read" data-toggle="tooltip" data-placement="right" title="Read"></i></time>
  </div>
   </div>
</div>
<div class="chat-content" style="margin-right:50px;">
   <p>test</p>
   <time class="chat-time" datetime="2018-06-11 17:24:22"> 23 minutes ago <i class="fa fa-check m-l-5 text-read" data-toggle="tooltip" data-placement="right" title="Read"></i></time>
</div>
</div></div>
<div class="chat chat-left ">
   <div class="chat-avatar">
  <a class="avatar" data-toggle="tooltip" href="" data-placement="left" title="Default">
  <img src="https://www.gravatar.com/avatar/88b87698be0bc461f3cacf1f080929d5.jpg?s=80&amp;d=mm&amp;r=g" alt="Default's Avatar">
  </a>
   </div>
   <div class="chat-content" style="margin-right:50px;">
  <p>hi</p>
  <time class="chat-time" datetime="2018-06-11 17:34:32"> 13 minutes ago</time>
   </div>
</div>
<div class="chat-content" style="margin-right:50px;">
   <p>hey</p>
   <time class="chat-time" datetime="2018-06-11 17:34:58"> 13 minutes ago</time>
</div>
</div></div>
<div class="chat chat-right ">
   <div class="chat-avatar">
  <a class="avatar" data-toggle="tooltip" href="" data-placement="right" title="Backend">
  <img src="https://www.gravatar.com/avatar/30aa172009d1e4e569d31a54899af0ee.jpg?s=80&amp;d=mm&amp;r=g" alt="Backend's Avatar">
  </a>
   </div>
   <div class="chat-content" style="margin-right:50px;">
  <p>hey</p>
  <time class="chat-time" datetime="2018-06-11 17:36:13"> 12 minutes ago <i class="fa fa-check m-l-5 text-read" data-toggle="tooltip" data-placement="right" title="Read"></i></time>
   </div>
</div>
<div class="chat-content" style="margin-right:50px;">
   <p>hi hi hi</p>
   <time class="chat-time" datetime="2018-06-11 17:36:22"> 11 minutes ago <i class="fa fa-check m-l-5 text-read" data-toggle="tooltip" data-placement="right" title="Read"></i></time>
</div>
</div></div>
<div class="chat chat-left ">
   <div class="chat-avatar">
  <a class="avatar" data-toggle="tooltip" href="" data-placement="left" title="Default">
  <img src="https://www.gravatar.com/avatar/88b87698be0bc461f3cacf1f080929d5.jpg?s=80&amp;d=mm&amp;r=g" alt="Default's Avatar">
  </a>
   </div>
   <div class="chat-content" style="margin-right:50px;">
  <p>hi hi hi hi</p>
  <time class="chat-time" datetime="2018-06-11 17:36:55"> 11 minutes ago</time>
   </div>
</div>
<div class="chat-content" style="margin-right:50px;">
   <p>lol from creator</p>
   <time class="chat-time" datetime="2018-06-11 17:37:55"> 10 minutes ago</time>
</div>
</div></div>
<div class="chat chat-right ">
   <div class="chat-avatar">
  <a class="avatar" data-toggle="tooltip" href="" data-placement="right" title="Backend">
  <img src="https://www.gravatar.com/avatar/30aa172009d1e4e569d31a54899af0ee.jpg?s=80&amp;d=mm&amp;r=g" alt="Backend's Avatar">
  </a>
   </div>
   <div class="chat-content" style="margin-right:50px;">
  <p>lol from buyer</p>
  <time class="chat-time" datetime="2018-06-11 17:38:45"> 9 minutes ago <i class="fa fa-check m-l-5 text-read" data-toggle="tooltip" data-placement="right" title="Read"></i></time>
   </div>
</div>

你应该将android:entries =“@ android:color / background_light”更改为 机器人:项= “@阵列/ country_names”

  

JAVA代码方法

您可以将其创建为Java Code Like

使用带有Spinner的Contry和Bind Array使用ArrayAdapter创建ArrayList。

 <string-array name="country_names">
        <item>India</item>
        <item>United States</item>
        <item>Indonesia</item>
        <item>France</item>
        <item>Italy</item>
        <item>Singapore</item>
        <item>New Zealand</item>
    </string-array>

答案 1 :(得分:0)

从XML中删除android:entries="@android:color/background_light"并从代码中设置ArrayAdapter或在Spinner中使用ArrayList条目。

示例:在strings.xml中创建一个数组:

<string-array name="country_arrays">
    <item>Malaysia</item>
    <item>United States</item>
    <item>Indonesia</item>
    <item>France</item>
    <item>Italy</item>
    <item>Singapore</item>
    <item>New Zealand</item>
    <item>India</item>
</string-array>

并在XML中将android:entries="@android:color/background_light"更改为android:entries="@array/country_arrays"