如果你有一个SpinnerAndroid对象的句柄Spinner,你可以通过编程方式弹出微调器选项 - 从而迫使用户选择一个选项,即使他们没有点击Spinner自己?
Tim*_*ger 135
要打开Spinner,您只需要调用它的performClick()方法.
请记住,您只能从UI线程调用此方法.如果你需要从一个单独的线程打开Spinner,你应该在UI线程中创建一个Handler,然后从你的第二个线程发送一个runInable对象,调用performClick()给Handler.
package com.example.SpinnerDemo;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.os.Handler;
public class SpinnerDemo extends Activity {
private Handler h;
private Spinner s;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
h = new Handler();
s = (Spinner) findViewById(R.id.spinner);
ArrayAdapter adapter = ArrayAdapter.createFromResource(this,
R.array.planets, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(adapter);
// Open the Spinner...
s.performClick();
// Spawn a thread that triggers the Spinner to open after 5 seconds...
new Thread(new Runnable() {
public void run() {
// DO NOT ATTEMPT TO DIRECTLY UPDATE THE UI HERE, IT WON'T WORK!
// YOU MUST POST THE WORK TO THE UI THREAD'S HANDLER
h.postDelayed(new Runnable() {
public void run() {
// Open the Spinner...
s.performClick();
}
}, 5000);
}
}).start();
}
}
Run Code Online (Sandbox Code Playgroud)
可以在此处找到此示例使用的资源.
Ami*_*bar 21
要显示Spinner项目,您只需要调用它的performClick()方法.
Spinner spDeviceType = (Spinner) findViewById(R.id.spDeviceType);
spDeviceType.performClick();
Run Code Online (Sandbox Code Playgroud)
小智 15
为什么前面的例子中有2个runnable?
这还不够:
h.postDelayed(new Runnable() {
public void run() {
s.performClick();
}
}, 5000);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40862 次 |
| 最近记录: |