android listview里item添加一个按钮点击事件,ListView Item点击事件跳转详情界面

有好久都没有碰安卓了,考试加五一双组合也真是让人蛋疼。好在都平安的度过了,所以又有时间gun回来弄弄我的小博客(虽然没多少人看= =)。看了之前做的几个小demo,模式都差不多,但是每次写的时候都要在看一遍知识点,(笨DIE)。这次mark一下,成为自己的东西!

-----------------------------------------------------吐槽分割线-----------------------------------------------------------------

这次写的是ListView 每个Item的点击事件跳转详情界面的知识。

我的DEMO是用ListView展示SQLite里的每一条数据。(这个内容之后再总结一篇)。每一个Item里有TextView显示数据库里的信息。

首先,给Item绑定监听事件,然后使用bundle类,顾名思义,就是将信息捆成一捆传递给下一个ACTIVITY。

这里用到bundle里的putString(String key,String value)方法,具体API解释:

Inserts a String value into the mapping of this Bundle, replacing any existing value for the given key. Either key or value may be null.(key值是另一个Activity需要用到的关键值,value是你需要传进去的值)。

之后就是想下一个活动传递数据操作:

新建一个意图关联当前的活动和下一个活动:Intent intent = new Intent(MainActivity.this,detailInfo.class);

<
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的示例代码,实现了一个图书登录界面和注册功能,并且注册后可以跳转到登录页面,登录后进入图书界面。请注意,这只是一个示例代码,需要根据具体需求进行修改。 1. 创建一个新的Android Studio项目,命名为BookLogin,选择Empty Activity模板。 2. 在activity_main.xml布局文件中添加以下代码,实现图书登录界面的UI布局: ```xml <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="16dp"> <EditText android:id="@+id/et_username" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入用户名" /> <EditText android:id="@+id/et_password" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入密码" android:inputType="textPassword" /> <Button android:id="@+id/btn_login" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="登录" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="还没有账号?点击注册" android:gravity="center" android:textSize="14sp" android:layout_marginTop="16dp"/> <Button android:id="@+id/btn_register" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="注册" android:layout_marginTop="16dp"/> </LinearLayout> ``` 3. 在MainActivity.java中添加以下代码,实现注册和登录功能: ```java public class MainActivity extends AppCompatActivity { private EditText etUsername; private EditText etPassword; private Button btnLogin; private Button btnRegister; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化控件 etUsername = findViewById(R.id.et_username); etPassword = findViewById(R.id.et_password); btnLogin = findViewById(R.id.btn_login); btnRegister = findViewById(R.id.btn_register); // 注册按钮点击事件 btnRegister.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 跳转到注册页面 Intent intent = new Intent(MainActivity.this, RegisterActivity.class); startActivity(intent); } }); // 登录按钮点击事件 btnLogin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 获取用户名和密码 String username = etUsername.getText().toString(); String password = etPassword.getText().toString(); // 检查用户名和密码是否正确 if (username.equals("admin") && password.equals("123456")) { // 登录成功,跳转到图书界面 Intent intent = new Intent(MainActivity.this, BookActivity.class); startActivity(intent); } else { // 登录失败,弹出提示框 Toast.makeText(MainActivity.this, "用户名或密码错误", Toast.LENGTH_SHORT).show(); } } }); } } ``` 4. 创建一个新的Activity类,命名为RegisterActivity,用于实现注册界面。在activity_register.xml布局文件中添加以下代码,实现注册界面的UI布局: ```xml <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="16dp"> <EditText android:id="@+id/et_username" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入用户名" /> <EditText android:id="@+id/et_password" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入密码" android:inputType="textPassword" /> <EditText android:id="@+id/et_confirm_password" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请确认密码" android:inputType="textPassword" /> <Button android:id="@+id/btn_register" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="注册" android:layout_marginTop="16dp"/> </LinearLayout> ``` 5. 在RegisterActivity.java中添加以下代码,实现注册功能: ```java public class RegisterActivity extends AppCompatActivity { private EditText etUsername; private EditText etPassword; private EditText etConfirmPassword; private Button btnRegister; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); // 初始化控件 etUsername = findViewById(R.id.et_username); etPassword = findViewById(R.id.et_password); etConfirmPassword = findViewById(R.id.et_confirm_password); btnRegister = findViewById(R.id.btn_register); // 注册按钮点击事件 btnRegister.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 获取用户名、密码和确认密码 String username = etUsername.getText().toString(); String password = etPassword.getText().toString(); String confirmPassword = etConfirmPassword.getText().toString(); // 检查用户名、密码和确认密码是否为空 if (TextUtils.isEmpty(username)) { Toast.makeText(RegisterActivity.this, "用户名不能为空", Toast.LENGTH_SHORT).show(); return; } if (TextUtils.isEmpty(password)) { Toast.makeText(RegisterActivity.this, "密码不能为空", Toast.LENGTH_SHORT).show(); return; } if (TextUtils.isEmpty(confirmPassword)) { Toast.makeText(RegisterActivity.this, "确认密码不能为空", Toast.LENGTH_SHORT).show(); return; } // 检查密码和确认密码是否一致 if (!password.equals(confirmPassword)) { Toast.makeText(RegisterActivity.this, "密码和确认密码不一致", Toast.LENGTH_SHORT).show(); return; } // 注册成功,返回登录界面 Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_SHORT).show(); finish(); } }); } } ``` 6. 创建一个新的Activity类,命名为BookActivity,用于实现图书界面。在activity_book.xml布局文件中添加以下代码,实现图书界面的UI布局: ```xml <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="16dp"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="欢迎使用图书管理系统" android:textSize="20sp" android:gravity="center" android:layout_marginBottom="16dp"/> <ListView android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout> ``` 7. 在BookActivity.java中添加以下代码,实现图书列表的显示: ```java public class BookActivity extends AppCompatActivity { private ListView listView; private List<Book> bookList = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_book); // 初始化控件 listView = findViewById(R.id.list_view); // 添加测试数据 bookList.add(new Book("Java入门", "Tom")); bookList.add(new Book("Android开发", "Jerry")); bookList.add(new Book("Python基础", "Mike")); // 创建适配器 BookAdapter adapter = new BookAdapter(BookActivity.this, R.layout.item_book, bookList); listView.setAdapter(adapter); } private class BookAdapter extends ArrayAdapter<Book> { private int resourceId; public BookAdapter(Context context, int resourceId, List<Book> objects) { super(context, resourceId, objects); this.resourceId = resourceId; } @NonNull @Override public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { Book book = getItem(position); // 获取当前项的Book实例 View view; ViewHolder viewHolder; if (convertView == null) { view = LayoutInflater.from(getContext()).inflate(resourceId, parent, false); viewHolder = new ViewHolder(); viewHolder.tvTitle = view.findViewById(R.id.tv_title); viewHolder.tvAuthor = view.findViewById(R.id.tv_author); view.setTag(viewHolder); // 将ViewHolder存储在View中 } else { view = convertView; viewHolder = (ViewHolder) view.getTag(); // 重新获取ViewHolder } viewHolder.tvTitle.setText(book.getTitle()); viewHolder.tvAuthor.setText(book.getAuthor()); return view; } private class ViewHolder { TextView tvTitle; TextView tvAuthor; } } private class Book { private String title; private String author; public Book(String title, String author) { this.title = title; this.author = author; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } } } ``` 好了,以上就是一个简单的图书登录界面和注册功能的实现示例。需要注意的是,这只是一个示例代码,根据实际需求还需要进行相应的修改和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值