我在使用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