微调控制器项不可单击 [英] Spinner Items Not Clickable

查看:28
本文介绍了微调控制器项不可单击的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个用4个元素填充的微调控件。在启动过程中,onItemSelected方法得到正确执行,并显示Toast消息。但是,当我打开微调按钮并尝试点击任何项目时,没有任何事件被调用,除非我按下微调按钮箭头,否则微调按钮弹出窗口不会关闭。换句话说,我不能与微调控制器项进行交互。

下面是微调控件的活动代码

 <Spinner
        android:id="@+id/spinner"
        android:popupBackground="@color/red"
        android:clickable="true"
        style="@style/spinner250"/>

下面是微调控件的样式

    <style name="spinner250">
    <item name="android:layout_width"> 250dp </item>
    <item name="android:layout_height"> match_parent </item>
    <item name="android:textColor"> @color/blue </item>
    <item name="android:textSize"> 12sp </item>
    </style>
这是我用来与微调控件交互的Java代码 Com.example.android.gjobat包;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemSelectedListener;
import org.w3c.dom.Text;
import static android.R.attr.country;
import static android.widget.ArrayAdapter.createFromResource;

public class MainActivity extends AppCompatActivity implements     OnItemSelectedListener {

public Spinner spinner;

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

    final String[] items = {"Item 1", "Item 2", "Item 3", "Item 4"};

    // Create an ArrayAdapter using the string array and a default spinner layout
    ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, items);
    Spinner spinner = (Spinner) findViewById(R.id.spinner);
    spinner.setAdapter(adapter);
    spinner.setOnItemSelectedListener(this);

}

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
    {
        String item = parent.getItemAtPosition(position).toString();
        // User selected item
        Toast.makeText(getApplicationContext(), item + " selected!", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent)
    {

    }
}

推荐答案

在花了整整一天的时间后,我发现问题是由

 <item name="android:inputType">textCapCharacters</item>

这是在我的style es.xml文件中。我不知道为什么这行代码会导致错误,但至少在我删除该行之后,它现在可以工作了。在删除错误行之前,请查看我的style es.xml文件的完整副本

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:textColor">@color/white</item>
<item name="android:inputType">textCapCharacters</item>
<item name="colorControlActivated">@color/white</item>
<item name="colorControlHighlight">@color/white</item>
<item name="colorControlNormal">@color/white</item>
</style>

我希望这对将来的某个人有所帮助

这篇关于微调控制器项不可单击的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆