1.学习内容:
Android点击事件——弹出弹出框
2.详解:
listView中的位置,来设置相应的点击事件
// 跳转
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
switch (position) {
case 0:
// 点击出弹窗
this.showPersonalInfoDialog(PersonalInformationActivity.this);
break;
case 1:
this.showPersonalInfoDialog(PersonalInformationActivity.this);
break;
case 2:
this.showPersonalInfoDialog(PersonalInformationActivity.this);
break;
case 3:
this.showPersonalInfoDialog(PersonalInformationActivity.this);
break;
case 4:
this.showPersonalInfoDialog(PersonalInformationActivity.this);
break;
}
}
点击后,弹出弹出框的方法
方法 `showPersonalInfoDialog()`,该方法用于显示一个对话框来修改用户信息。
1. 首先,创建一个 AlertDialog.Builder 对象 builder,该对象用于构建对话框。构建对话框时传入当前 Activity 的引用 `PersonalInformationActivity.this`。
2. 设置对话框的标题和消息内容:
- `setTitle("修改用户名")`:设置对话框的标题为 "修改用户名"。
- `setMessage("请输入新用户名")`:设置对话框的消息内容为 "请输入新用户名"。
3. 调用 `setView(R.layout.dialog_edit_text)` 方法设置对话框的视图:
- `R.layout.dialog_edit_text` 是一个布局文件,将会作为对话框的内容显示给用户。
4. 通过 `setPositiveButton()` 方法设置对话框的确认按钮的文本和点击事件:
- `"确定"`:设置确认按钮的文本为 "确定"。
- `new DialogInterface.OnClickListener()`:创建一个点击事件监听器,当用户点击确认按钮时执行其中的代码。
5. 调用 `create()` 方法创建对话框,并调用 `show()` 方法显示对话框。
在 `onClick` 方法中,你可以编写具体的修改用户名的逻辑。例如,获取用户输入的新用户名,进行一些处理(如验证新用户名的合法性),然后更新用户信息。
对话框的布局文件 `dialog_edit_text.xml` 应该包含一个用于输入新用户名的 EditText 控件,以便用户输入新的用户名。
通过这段代码,当调用 `showPersonalInfoDialog(personalInformationActivity)` 方法时,将会显示一个对话框用于修改用户名。你可以根据实际需求调整或扩展该方法来实现更多功能。
private void showPersonalInfoDialog(PersonalInformationActivity personalInformationActivity) {
AlertDialog.Builder builder = new AlertDialog.Builder(PersonalInformationActivity.this);
// 修改用户名的弹窗
builder.setTitle("修改用户名")
.setMessage("请输入新用户名")
.setView(R.layout.dialog_edit_text)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
})
.create()
.show();
}
3.实例讲解
package com.catanddog.Personal.activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import androidx.appcompat.app.AppCompatActivity;
import com.catanddog.Personal.adapter.Myadapter;
import com.catanddog.R;
import java.util.ArrayList;
public class PersonalInformationActivity extends AppCompatActivity {
private ArrayList<Integer> imageResources;
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_personal_information);
// 初始化布局
initViews();
// 初始化数据源
imageResources = new ArrayList<>();
imageResources.add(R.mipmap.yonghumingshezhi);
imageResources.add(R.mipmap.gexingqianming);
imageResources.add(R.mipmap.xingbie);
imageResources.add(R.mipmap.shengri);
imageResources.add(R.mipmap.mima);
// 跳转
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
switch (position) {
case 0:
// 点击出弹窗
this.showPersonalInfoDialog(PersonalInformationActivity.this);
break;
case 1:
this.showPersonalInfoDialog(PersonalInformationActivity.this);
break;
case 2:
this.showPersonalInfoDialog(PersonalInformationActivity.this);
break;
case 3:
this.showPersonalInfoDialog(PersonalInformationActivity.this);
break;
case 4:
this.showPersonalInfoDialog(PersonalInformationActivity.this);
break;
}
}
private void showPersonalInfoDialog(PersonalInformationActivity personalInformationActivity) {
AlertDialog.Builder builder = new AlertDialog.Builder(PersonalInformationActivity.this);
// 修改用户名的弹窗
builder.setTitle("修改用户名")
.setMessage("请输入新用户名")
.setView(R.layout.dialog_edit_text)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
})
.create()
.show();
}
});
// 设置Adapter
Myadapter adapter = new Myadapter(this, imageResources);
listView.setAdapter(adapter);
}
private void initViews() {
listView = (ListView) findViewById(R.id.personal_list);
}
}
package com.catanddog.Personal.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import com.catanddog.R;
import java.util.List;
public class Myadapter extends BaseAdapter {
private Context context;
private List<Integer> imageResources;
public Myadapter(Context context, List<Integer> imageResources) {
this.context = context;
this.imageResources = imageResources;
}
@Override
public int getCount() {
return imageResources.size();
}
@Override
public Object getItem(int position) {
return imageResources.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
// 如果没有缓存的View,则创建一个新的View
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.wode_list_item_image, parent, false);
}
ImageView imageView = convertView.findViewById(R.id.wode_image_view);
imageView.setImageResource(imageResources.get(position));
return convertView;
}
}
<?xml version="1.0" encoding="utf-8"?>
<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="请输入新用户名"
android:inputType="text" />
</LinearLayout>