gpt4 book ai didi

java - 2.2 中与布局安排相关的 Android 微调器错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:19:54 24 4
gpt4 key购买 nike

下面是我在使用我的 Android 应用程序时遇到的错误的链接。与其试图通过大量的文字来解释它,我认为一个简单的视频会更直接、更容易理解。

http://www.youtube.com/watch?v=9V3v854894g

我已经在这个问题上苦苦思索了一天半了。我最近才发现它可以通过更改 XML 布局来解决,这对我来说完全没有意义。我不知道如何正确修复它,也不知道如何解决这个问题,因为我需要在我的应用程序中使用嵌套布局。

谢谢大家的帮助!

代码如下:

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.AdapterView.OnItemSelectedListener;

public class Builder extends Activity {
private Spinner mCompSelect;
private Spinner mNameSelect;
private int[] mCompColorAsBuilt;
private int mComponent;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.builder);

mCompColorAsBuilt = new int[3];

//Attach our objects
mCompSelect = (Spinner) findViewById(R.id.component);
mNameSelect = (Spinner) findViewById(R.id.component_name);

//Attach an adapter to the top spinner
ArrayAdapter<CharSequence> a = ArrayAdapter.createFromResource(this, R.array.cc_components, android.R.layout.simple_spinner_item);
a.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mCompSelect.setAdapter(a);
//Create a listener when the top spinner is clicked
mCompSelect.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
//Save the position
mComponent = position;
//Create a new adapter to attach to the bottom spinner based on the position of the top spinner
int resourceId = Builder.this.getResources().getIdentifier("component"+Integer.toString(mComponent)+"_color", "array", Builder.this.getPackageName());
ArrayAdapter<CharSequence> a = ArrayAdapter.createFromResource(Builder.this, resourceId, android.R.layout.simple_spinner_item);
a.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mNameSelect.setAdapter(a);
//Set the position of the bottom spinner to the saved position
mNameSelect.setSelection(mCompColorAsBuilt[mComponent]);
}
public void onNothingSelected(AdapterView<?> parent) {

}
});

//Attach an adapter to the bottom spinner
int resourceId = this.getResources().getIdentifier("component"+Integer.toString(mComponent)+"_color", "array", this.getPackageName());
ArrayAdapter<CharSequence> b = ArrayAdapter.createFromResource(this, resourceId, android.R.layout.simple_spinner_item);
b.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mNameSelect.setAdapter(b);
mNameSelect.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
//Save the position of the bottom spinner
mCompColorAsBuilt[mComponent] = position;
}
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<Spinner
android:id="@+id/component"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/finish"
android:drawSelectorOnTop="true"
android:prompt="@string/component_spinner" />

<LinearLayout
android:orientation="horizontal"
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >

<Spinner
android:id="@+id/component_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawSelectorOnTop="true"
android:prompt="@string/component_name_spinner" />
</LinearLayout>
</RelativeLayout>

最佳答案

作为 hack,尝试在受影响的 Spinner 上调用 invalidate()。首先,在调用 setSelection() 后尝试。如果失败,请尝试在 Spinner 上使用 postDelayed() 稍后调用 invalidate()(例如,50 毫秒)。

此外,我鼓励您创建一个演示项目,其中包含两个 Activity (或者可能只是一个 Activity 具有两个布局)来说明此行为,并将其和解释发布到 http://b.android.com .

关于java - 2.2 中与布局安排相关的 Android 微调器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4548764/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com