Android点击事件——弹出弹出框

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>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

L.2626

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值