要实现这个功能,你需要进行以下步骤:

  1. 在布局文件中添加一个 TextView 和一个 Button 来实现点击事件。
  2. 创建一个适配器类来为 ListView 提供数据。
  3. 在适配器类中,创建一个内部类来保存每个列表项的数据。
  4. 在 Activity 中,初始化 ListView 和适配器,并为 ListView 设置适配器。
  5. 在 Activity 中,为 TextView 设置点击事件,当点击 TextView 时,弹出包含 5 分钟、10 分钟和 15 分钟的列表对话框。
  6. 在列表对话框的点击事件中,获取所选项的时间,并使用 Handler 和 Runnable 来实现定时提醒功能。

下面是一个示例代码的实现:

  1. 在布局文件中添加一个 TextView 和一个 Button:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Click to set reminder time" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Set Reminder" />

</LinearLayout>
  1. 创建适配器类:
public class TimeAdapter extends ArrayAdapter<String> {

    private Context mContext;
    private ArrayList<String> mTimes;

    public TimeAdapter(Context context, ArrayList<String> times) {
        super(context, 0, times);
        mContext = context;
        mTimes = times;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        String time = getItem(position);

        if (convertView == null) {
            convertView = LayoutInflater.from(mContext).inflate(android.R.layout.simple_list_item_1, parent, false);
        }

        TextView textView = convertView.findViewById(android.R.id.text1);
        textView.setText(time);

        return convertView;
    }
}
  1. 在 Activity 中初始化 ListView 和适配器:
public class MainActivity extends AppCompatActivity {

    private TextView mTextView;
    private Button mButton;
    private ListView mListView;
    private TimeAdapter mAdapter;
    private ArrayList<String> mTimes;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mTextView = findViewById(R.id.textView);
        mButton = findViewById(R.id.button);
        mListView = new ListView(this);
        mTimes = new ArrayList<>();
        mTimes.add('5 minutes');
        mTimes.add('10 minutes');
        mTimes.add('15 minutes');
        mAdapter = new TimeAdapter(this, mTimes);
        mListView.setAdapter(mAdapter);

        mTextView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setTitle('Select Time')
                        .setAdapter(mAdapter, new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                String time = mTimes.get(which);
                                startReminder(time);
                            }
                        })
                        .setNegativeButton('Cancel', null)
                        .create()
                        .show();
            }
        });

        mButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // Handle button click
            }
        });
    }

    private void startReminder(String time) {
        final Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                // Perform reminder action
            }
        }, getTimeInMillis(time));
    }

    private long getTimeInMillis(String time) {
        switch (time) {
            case '5 minutes':
                return 5 * 60 * 1000;
            case '10 minutes':
                return 10 * 60 * 1000;
            case '15 minutes':
                return 15 * 60 * 1000;
            default:
                return 0;
        }
    }
}

这个示例代码实现了点击 TextView 后弹出一个包含 5 分钟、10 分钟和 15 分钟的列表对话框。当点击列表项时,会根据所选项的时间,在相应的时间后发送提醒消息。你可以根据自己的需求进行修改和调整。

Android Studio: 创建点击提醒时间列表的 TextView 实现

原文地址: https://www.cveoy.top/t/topic/qrOP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录