安卓文本框和列表框怎么结合用
时间: 2023-06-11 21:09:03 浏览: 55
在Android开发中,文本框和列表框可以通过适配器(Adapter)进行结合使用。
首先,你需要在布局文件中定义一个文本框和一个列表框。例如:
```
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入要添加的项" />
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
```
接下来,你需要创建一个适配器类,用于将数据绑定到列表框中。例如:
```
public class MyAdapter extends BaseAdapter {
private List<String> mData;
public MyAdapter(List<String> data) {
mData = data;
}
@Override
public int getCount() {
return mData.size();
}
@Override
public Object getItem(int position) {
return mData.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(parent.getContext()).inflate(android.R.layout.simple_list_item_1, parent, false);
}
TextView textView = convertView.findViewById(android.R.id.text1);
textView.setText(mData.get(position));
return convertView;
}
}
```
在适配器类中,我们使用了一个列表数据 mData,并实现了 getCount()、getItem() 和 getItemId() 方法来获取数据项的数量、数据项本身和数据项的 ID。最后,我们重写了 getView() 方法来渲染每个列表项的视图。
最后,在 Activity 中,你需要将适配器绑定到列表框上,并在文本框中输入内容后,将内容添加到列表数据中,并通知适配器数据已经改变。例如:
```
public class MainActivity extends AppCompatActivity {
private EditText mEditText;
private ListView mListView;
private MyAdapter mAdapter;
private List<String> mData;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditText = findViewById(R.id.edit_text);
mListView = findViewById(R.id.list_view);
mData = new ArrayList<>();
mAdapter = new MyAdapter(mData);
mListView.setAdapter(mAdapter);
mEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
String text = v.getText().toString();
mData.add(text);
mAdapter.notifyDataSetChanged();
v.setText("");
return true;
}
return false;
}
});
}
}
```
在 Activity 中,我们定义了一个 mData 列表数据,并在 onCreate() 方法中将适配器绑定到列表框上。在文本框中输入内容后,我们将内容添加到 mData 列表数据中,并通知适配器数据已经改变。最后,我们清空了文本框的内容。