您的位置:首页 > 移动开发 > Android开发

Android开发从入门到放弃(11)适配Spinner和AutoComplete

2017-01-02 08:16 399 查看
之前的博客中,我通过简单的例子来适配了ListView和GridView,用这样的套路,可以轻松适配Spinner来实现下拉框,以及适配AutoComplete在用户输入时提供更多的信息

适配Spinner实现下拉框

public class MainActivity extends AppCompatActivity {

private static final String[] myListItems={"To", "be",
"or", "not", "to", "be", "that", "is", "the", "question"};

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

Spinner spinner = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<String> myAdapter=new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, myListItems);
myAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(myAdapter);
}
}


上面的代码可以实现一个下拉框。

适配AutoComplete实现输入提示(类似于搜索时的输入提示)

首先在layout中定义一个AutoCompleteTextView控件

<AutoCompleteTextView android:id="@+id/edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:completionThreshold="1" />


android:completionThreshold
属性指定了用户在最少输入几个文字之后才触发下拉提示框。

下面是Java代码

public class MainActivity extends AppCompatActivity implements TextWatcher {

private static final String[] myListItems={"To", "be",
"or", "not", "to", "be", "that", "is", "the", "question"};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AutoCompleteTextView edit = (AutoCompleteTextView) findViewById(R.id.edit);
edit.addTextChangedListener(this);
edit.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,myListItems));
}

@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

}

@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

}

@Override
public void afterTextChanged(Editable editable) {

}
}


上面的代码实现了一个固定文字的AutoCompleteTextView,但又实现了
TextWatcher
接口,重写该接口中的特定方法,可以实现一个动态的AutoCompleteTextView。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android Spinner