我是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);
}
任何帮助将不胜感激
答案 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&d=mm&r=g" alt="Backend's Avatar">
</a>
</div>
<div class="chat-body">
<div class="chat-content">
<p>Hey I'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&d=mm&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&d=mm&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&d=mm&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&d=mm&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"
。