public class MerchantActivity extends AppCompatActivity { private EditText mNameEditText; private EditText mPriceEditText; private Button mAddButton; private ListView mListView; private DBHelper mDBHelper; private SQLiteDatabase mDatabase; private Cursor mCursor; private SimpleCursorAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_merchant); mNameEditText = findViewById(R.id.edit_text_name); mPriceEditText = findViewById(R.id.edit_text_price); mAddButton = findViewById(R.id.button_add); mListView = findViewById(R.id.list_view); mDBHelper = new DBHelper(this); mDatabase = mDBHelper.getWritableDatabase(); updateUI(); mAddButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String price = mPriceEditText.getText().toString(); ContentValues values = new ContentValues(); values.put(DBHelper.COLUMN_NAME, name); values.put(DBHelper.COLUMN_PRICE, price); mDatabase.insert(DBHelper.TABLE_NAME, null, values); updateUI(); } }); } private void updateUI() { mCursor = mDatabase.query(DBHelper.TABLE_NAME, null, null, null, null, null, null); mAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, mCursor, new String[]{DBHelper.COLUMN_NAME, DBHelper.COLUMN_PRICE}, new int[]{android.R.id.text1, android.R.id.text2}, 0); mListView.setAdapter(mAdapter); } @Override protected void onDestroy() { super.onDestroy(); mDatabase.close(); mCursor.lose(); } }什么意思
时间: 2024-02-14 15:08:06 浏览: 175
这是一个 Android 应用程序中的活动(Activity),用于创建和管理商家信息。它包括一个用于输入商家名称和价格的文本框、一个用于添加商家信息的按钮、一个用于显示商家信息的列表视图。此外,它还使用了一个 DBHelper 类来创建和管理数据库,以便存储商家信息。当用户点击添加按钮时,程序会将商家名称和价格添加到数据库中,并更新列表视图以显示最新的商家信息。在 onDestroy 方法中,程序关闭数据库连接和游标以保证资源的释放。
相关问题
Android studio创建 一个ListView,EditText,Button,实现单击按钮,将editText中输入的内容添加到ListView
好的,下面是具体实现步骤:
1. 在布局文件中添加ListView、EditText和Button组件,如下所示:
```
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
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="请输入要添加的内容" />
<Button
android:id="@+id/add_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="添加" />
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
```
2. 在Activity中获取ListView、EditText和Button组件,并设置按钮的单击事件监听器:
```
public class MainActivity extends AppCompatActivity {
private ListView mListView;
private EditText mEditText;
private Button mButton;
private ArrayAdapter<String> mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mListView = findViewById(R.id.list_view);
mEditText = findViewById(R.id.edit_text);
mButton = findViewById(R.id.add_button);
mAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1);
mListView.setAdapter(mAdapter);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String text = mEditText.getText().toString();
if (!TextUtils.isEmpty(text)) {
mAdapter.add(text);
mEditText.setText("");
}
}
});
}
}
```
3. 在单击按钮事件监听器中,获取EditText中输入的内容,并将其添加到ListView的适配器中,最后清空EditText的内容。
4. 运行程序,输入要添加的内容,单击按钮,即可将其添加到ListView中。
AndroidStudio Fragment1在MainActivity中,Fragment1上方有个edittext设置为搜素框,搜索框下方是listview,listview每一行显示数据库表course的数据,如何根据搜索框中输入的文本在listview中显示数据库表course的不同内容
你可以在搜索框中添加一个 TextWatcher 监听器,当用户输入文本时,触发监听器中的 onTextChanged 方法,然后在该方法中实现根据用户输入的文本搜索数据库表 course 的功能。具体的实现步骤如下:
1. 在 Fragment1 的布局文件中,添加一个 EditText 和一个 ListView。
2. 在 Fragment1 的代码中,初始化 EditText 和 ListView。
3. 给 EditText 添加一个 TextWatcher 监听器,在 onTextChanged 方法中根据用户输入的文本搜索数据库表 course。
4. 将搜索结果显示在 ListView 中。
下面是代码示例:
```java
public class Fragment1 extends Fragment {
private EditText mSearchEditText;
private ListView mListView;
private CourseAdapter mAdapter;
private List<Course> mCourseList;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment1, container, false);
mSearchEditText = view.findViewById(R.id.search_edit_text);
mListView = view.findViewById(R.id.list_view);
mCourseList = new ArrayList<>();
mAdapter = new CourseAdapter(getContext(), mCourseList);
mListView.setAdapter(mAdapter);
mSearchEditText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
searchCourse(s.toString());
}
@Override
public void afterTextChanged(Editable s) {
}
});
return view;
}
private void searchCourse(String keyword) {
mCourseList.clear();
SQLiteDatabase db = MyDatabaseHelper.getInstance(getContext()).getReadableDatabase();
Cursor cursor = db.query("course", null, "name like ?", new String[]{"%" + keyword + "%"}, null, null, null);
if (cursor.moveToFirst()) {
do {
String name = cursor.getString(cursor.getColumnIndex("name"));
String teacher = cursor.getString(cursor.getColumnIndex("teacher"));
int credit = cursor.getInt(cursor.getColumnIndex("credit"));
Course course = new Course(name, teacher, credit);
mCourseList.add(course);
} while (cursor.moveToNext());
}
cursor.close();
mAdapter.notifyDataSetChanged();
}
}
```
在这个示例中,我们首先在 onCreateView 方法中初始化了 EditText 和 ListView,然后给 EditText 添加了一个 TextWatcher 监听器,在 onTextChanged 方法中调用 searchCourse 方法,根据用户输入的文本搜索数据库表 course。最后将搜索结果显示在 ListView 中。其中,CourseAdapter 是一个自定义的适配器,用于将 Course 对象显示在 ListView 中。
阅读全文