Android Studio TextView 点击跳转至时区列表并显示选择结果
要实现这个功能,你可以按照以下步骤进行编写代码:
- 在你的布局文件中,添加一个 TextView 组件,用于显示选择的时区。例如:
<TextView
android:id="@+id/timezoneTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Select Timezone"
android:clickable="true"
android:focusable="true" />
- 在你的 Activity 中,为 TextView 设置点击事件监听器,并在点击事件中启动一个新的 Activity 用于显示时区列表。例如:
TextView timezoneTextView = findViewById(R.id.timezoneTextView);
timezoneTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, TimezoneListActivity.class);
startActivityForResult(intent, 1);
}
});
这里我们使用了startActivityForResult()方法,以便在选择时区后返回结果。
-
创建一个新的 Activity 用于显示时区列表。例如,创建一个名为
TimezoneListActivity的新 Activity,并在其中显示时区列表。你可以使用一个 ListView 或 RecyclerView 来显示时区列表,具体实现方式取决于你的需求。 -
在时区列表 Activity 中,为每个时区项设置点击事件监听器,并在点击事件中将选择的时区返回给上一个 Activity。例如:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String selectedTimezone = timezoneList.get(position);
Intent resultIntent = new Intent();
resultIntent.putExtra('selectedTimezone', selectedTimezone);
setResult(Activity.RESULT_OK, resultIntent);
finish();
}
});
这里我们将选择的时区作为结果通过 Intent 返回给上一个 Activity,并调用finish()方法关闭当前 Activity。
- 在上一个 Activity 中,重写
onActivityResult()方法来处理返回的结果,并将选择的时区设置到 TextView 中。例如:
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == Activity.RESULT_OK && data != null) {
String selectedTimezone = data.getStringExtra('selectedTimezone');
timezoneTextView.setText(selectedTimezone);
}
}
这里我们检查 requestCode 和 resultCode 以及传递的数据是否正确,然后从 Intent 中获取选择的时区,并将其设置到 TextView 中。
这样,当你点击 TextView 时,将会打开一个新的 Activity 显示时区列表,选择时区后,选择的时区将会显示在 TextView 上。
原文地址: https://www.cveoy.top/t/topic/qri9 著作权归作者所有。请勿转载和采集!