我在使用s.requestFocus()时出现问题,当s是一个微调。当它是一个微调控制器时,是否有特殊的处理方式来使它工作? 感谢Android 2.2 requestFocus()和spinners
3
A
回答
0
使用本
import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
public class dynamic_spinner_main extends Activity {
private Spinner m_myDynamicSpinner;
private EditText m_addItemText;
private ArrayAdapter<CharSequence> m_adapterForSpinner;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_spinner);
///////////////////////////////////////////////////////////////
//grab our UI elements so we can manipulate them (in the case of the Spinner)
// or add listeners to them (in the case of the buttons)
m_myDynamicSpinner = (Spinner)findViewById(R.id.dynamicSpinner);
m_addItemText = (EditText)findViewById(R.id.newSpinnerItemText);
Button addButton = (Button)findViewById(R.id.AddBtn);
Button clearButton = (Button)findViewById(R.id.ClearBtn);
////////////////////////////////////////////////////////////////
//create an arrayAdapter an assign it to the spinner
m_adapterForSpinner = new ArrayAdapter(this, android.R.layout.simple_spinner_item);
m_adapterForSpinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
m_myDynamicSpinner.setAdapter(m_adapterForSpinner);
m_adapterForSpinner.add("gr");
m_myDynamicSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
// your code here
Intent mIntent=new Intent(dynamic_spinner_main.this,sampleLocalization.class);
mIntent.putExtra("lang", m_myDynamicSpinner.getItemIdAtPosition(position));
System.out.println("Spinner value...."+m_myDynamicSpinner.getSelectedItem().toString());
startActivity(mIntent);
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
// your code here
}
});
////////////////////////////////////////////////////////////////
//add listener for addButton
addButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
addNewSpinnerItem();
}
});
////////////////////////////////////////////////////////////////
//add listener for addButton
clearButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
clearSpinnerItems();
}
});
}
private void addNewSpinnerItem() {
CharSequence textHolder = "" + m_addItemText.getText();
m_adapterForSpinner.add(textHolder);
}
private void clearSpinnerItems() {
m_adapterForSpinner.clear();
m_adapterForSpinner.add("dummy item");
}
}
main_spinner.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText android:layout_height="wrap_content"
android:layout_margin="4px"
android:id="@+id/newSpinnerItemText"
android:layout_width="fill_parent"></EditText>
<Button android:layout_height="wrap_content"
android:id="@+id/AddBtn"
android:layout_margin="4px"
android:layout_width="fill_parent"
android:text="Add To Spinner"></Button>
<Button android:layout_height="wrap_content"
android:id="@+id/ClearBtn"
android:layout_margin="4px"
android:layout_width="fill_parent"
android:text="Clear Spinner Items"></Button>
<Spinner android:layout_height="wrap_content"
android:id="@+id/dynamicSpinner"
android:layout_margin="4px"
android:layout_width="fill_parent"></Spinner>
</LinearLayout>
+1
我很抱歉,但我没有看到与我的问题的关系。 – xain 2011-04-27 13:06:03
3
试试这个代码..
spinner.setFocusable(true);
spinner.setFocusableInTouchMode(true);
1
我猜你是不是真的只是希望“把重点放在微调器上。当你将焦点放在EditText上时,键盘会弹出,所以你可能希望微调选择在焦点上“打开” - 但它不会这样工作(不要问我为什么)。使用s.performClick()来做到这一点 - 它就像用户点击微调控件一样。
+0
这就像一个魅力! – 2011-08-26 20:39:20
0
默认情况下,微调控件不是可以调焦的(source)。所以,你必须让它可聚焦无论是在XML
<Spinner
android:id="@+id/spinner"
android:focusable="true"
android:layout_width="wrap_conten"
android:layout_height="wrap_content" />
或代码
findViewById(R.id.spinner).setFocusable(true);
相关问题
- 1. Android RequestFocus()无效
- 2. Android requestFocus issue
- 3. Android - Spinners
- 4. Android Spinners
- 5. Android的问题requestFocus()
- 6. Android 2.2和EPublib
- 7. android 2.2和2.3
- 8. Android DatePicker Spinners Not Displaying
- 9. 相关的spinners Android
- 10. 使用json文件和android spinners
- 11. JavaFX RequestFocus
- 12. EditText requestFocus()?
- 13. 多个spinners和onItemSelected
- 14. spinners中的除数 - Android
- 15. 在Android中有多个spinners
- 16. Android中的多个Spinners
- 17. phonegap 2.6和android API 2.2
- 18. SSL与Android 2.2和2.3
- 19. android 2.2和串行通讯
- 20. Android - requestFocus开关键盘关闭
- 21. java中的requestFocus()?
- 22. JavaFX TextInputControl requestFocus
- 23. 差异在Android 2.2和Android 6
- 24. ArgbEvaluator错误Android 2.2和Android 2.3.3
- 25. Maven android同时管理android 2.2和3.0
- 26. Android Studio中2.2
- 27. Android 2.1 vs 2.2
- 28. 调用transferFocus或requestFocus?
- 29. Android 1.6至2.2
- 30. SDK manager Android 2.2
问题是什么?有任何日志或源代码向我们展示? – OcuS 2011-04-26 12:12:08
当我为一个微调器做view.requestFocus()时,它什么都不做,但是如果视图是一个EditText,它就可以正常工作。 – xain 2011-04-26 22:04:12
你到底想做什么?让它处于选定状态?打开微调对话框?请详细说明 – zsniperx 2011-05-05 21:57:41