相关疑难解决方法(0)

Android Spinner:获取所选的项目更改事件

如何在所选项目更改时为Spinner设置事件侦听器?

基本上我想要做的是类似于这样的事情:

spinner1.onSelectionChange = handleSelectionChange;

void handleSelectionChange(Object sender){
    //handle event
}
Run Code Online (Sandbox Code Playgroud)

events android spinner android-spinner

385
推荐指数
9
解决办法
46万
查看次数

Android Spinner:在初始化期间避免onItemSelected调用

我用a Spinner和a 创建了Android应用程序TextView.我的任务是在TextView的Spinner下拉列表中显示所选项目.我在onCreate方法中实现了Spinner,所以当我运行程序时,它会显示一个值TextView(在从下拉列表中选择一个项目之前).

我只想在从下拉列表中选择一个项目后才在TextView中显示该值.我该怎么做呢?

这是我的代码:

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

public class GPACal01Activity extends Activity implements OnItemSelectedListener {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Spinner spinner = (Spinner) findViewById(R.id.noOfSubjects);

        // Create an ArrayAdapter using the string array and a default spinner layout
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,R.array.noofsubjects_array, android.R.layout.simple_spinner_item);
        // Specify the layout …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-spinner

134
推荐指数
9
解决办法
8万
查看次数

Spinner onItemSelected()执行不当

可能重复:
Android Spinner OnItemSelected错误调用(无需用户操作打开微调器)

有没有人知道如何在实例化布局时阻止onItemSelected()(OnItemSelectedListener接口)方法运行?我需要知道是否有办法做到这一点,因为我想保持我如何实例化我的布局与该侦听器分开.

我已经尝试在重写方法内部的所有代码周围创建一个最初设置为false的if语句,但是无法知道何时将其设置为true,因为重写的方法在onCreate(),onStart()之后运行,并且每次onResume()方法.

我没有找到任何明确的答案.任何明确的解决方案将不胜感激.

java android

43
推荐指数
3
解决办法
3万
查看次数

如果选择了非零位置,则旋转后Spinner的onItemSelected回调调用两次

当我创建我的活动时,我设置了一个Spinner,为它分配一个监听器和一个初始值.我知道onItemSelected在应用程序初始化期间会自动调用回调.我觉得很奇怪的是,当设备旋转时会发生两次这种情况,这会导致我遇到一些问题,我不得不绕过它.如果微调器初始选择为零,则不会发生这种情况.我能够隔离问题,这是触发它的最简单的活动:

public class MainActivity extends Activity implements OnItemSelectedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.i("Test","Activity onCreate");
    setContentView(R.layout.activity_main);
    ((Spinner)findViewById(R.id.spinner1)).setSelection(2);
    ((Spinner)findViewById(R.id.spinner1)).setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> spin, View selview, int pos, long selId)
{
    Log.i("Test","spin:"+spin+" sel:"+selview+" pos:"+pos+" selId:"+selId);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {}
}
Run Code Online (Sandbox Code Playgroud)

这是启动应用程序然后旋转设备时显示的logcat:

    I/Test( 9881): spin:android.widget.Spinner@4052f508 sel:android.widget.TextView@40530b08 pos:2 selId:2
    I/Test( 9881): Activity onCreate
    I/Test( 9881): spin:android.widget.Spinner@40535d80 sel:android.widget.TextView@40538758 pos:2 selId:2
    I/Test( 9881): spin:android.widget.Spinner@40535d80 sel:android.widget.TextView@40538758 pos:2 selId:2
Run Code Online (Sandbox Code Playgroud)

这是预期的行为吗?我错过了什么吗?

android android-widget android-spinner

28
推荐指数
4
解决办法
1万
查看次数

Spinner onItemSelected错误地调用(无需用户操作)

我有一个微调器,我在对话框视图中显示,并且onItemSelected调用对话框开始的那一刻.我真的不想处理这个,但只有当用户做出选择时.所以我要么阻止这种情况(可能是因为没有设置默认值?),或者我需要知道进行此选择的用户不是?

android spinner android-spinner

26
推荐指数
4
解决办法
3万
查看次数

Android Spinner选择

当以编程方式更改微调器选择时,以及当用户物理单击微调器控件时,都会调用OnItemSelectedListener事件处理程序.是否可以确定某个事件是否由用户选择以某种方式触发?

或者是否有另一种方法来处理微调器用户选择?

android selection spinner

23
推荐指数
2
解决办法
3万
查看次数

不受欢迎的onItemSelected调用

我有36个微调器,我用一些值初始化了.我用过onItemSelectedListener.像往常一样,用户可以与这些微调器交互,触发onItemSeected函数.

一个问题是调用是在init期间进行的,但我在这里找到了它的解决方案并避免使用全局变量"count"并在onItemSelected中执行代码之前检查count> 36.

我的问题是:用户可以选择单击名为"Previous"的按钮,我必须重置一些微调器值.

我尝试在重置微调器之前将count的值更改为0,然后在重置后将其更改回37,但我已经明白只有在每个其他函数执行完毕后才调用onItemSelected,所以它被称为AFTER count即使微调器值在用户选择后立即设置,也会更改回37.

我需要重复刷新一些微调器而不触发onItemSelected函数.有谁能帮我找到解决方案?谢谢.

android android-spinner

19
推荐指数
3
解决办法
2万
查看次数

如何使On Item Selected不自动选择第一个条目

我创建了一个微调器,当一个人使用阵列适配器添加设备时,该微调器会自动更新设备名称.我使用微调器创建了一个OnItemSelected方法,因此当选择微调器中的一个名称时,会出现一个新窗口.但是,OnItemSelected会在活动开始时自动选择列表中的第一个项目,因此用户在新窗口出现之前无法实际进行选择.

这是代码:

public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
        long arg3) {
    // TODO Auto-generated method stub
    startActivity(new Intent("com.lukeorpin.theappliancekeeper.APPLIANCESELECTED"));
    }

public void onNothingSelected(AdapterView<?> arg0) {
    // TODO Auto-generated method stub
Run Code Online (Sandbox Code Playgroud)

有没有人知道列表中的第一项不会自动选择的方式?

以下是其余微调器的代码:

ArrayAdapter<String> appliancenameadapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, ApplianceNames); //Sets up an array adapter containing the values of the ApplianceNames string array
    applianceName = (Spinner) findViewById(R.id.spinner_name); //Gives the spinner in the xml layout a variable name
    applianceName.setAdapter(appliancenameadapter); //Adds the contents of the array adapter into the spinner

    applianceName.setOnItemSelectedListener(this);
Run Code Online (Sandbox Code Playgroud)

java eclipse android spinner

8
推荐指数
3
解决办法
2万
查看次数

Spinner OnclickListener事件执行两次,如何处理这两个事件

Spinner OnclickListener事件执行两次 -

  • Spinner初始化
  • 用户手动选择

监听器的实现方式如下:

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {           
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

            }

            public void onNothingSelected(AdapterView<?> parent) {

            }
        });
Run Code Online (Sandbox Code Playgroud)

问题定义

我想将用户选择的文本保存到数据存储中,当用户从微调器中选择任何项目时,我能够执行此操作.但我的另一项任务是将以前选择的项目(从数据存储中访问)显示为微调器中的选定项目,但每次调用微调器的活动时,微调器都会将第一项显示为默认选定项目,并且在数据存储中也会更改之前的项目项目为默认值.

如何区分"Spinner初始化"和"用户手动选择"事件?

android spinner

5
推荐指数
1
解决办法
5273
查看次数