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

  1. 创建一个包含国际时区的列表界面。
  2. 在点击某个TextView时,启动列表界面。
  3. 当用户点击任一条时区时,将该时区显示在TextView上。

以下是一个简单的示例代码:

  1. 创建一个新的Activity用于显示时区列表,命名为TimezoneListActivity。
public class TimezoneListActivity extends AppCompatActivity {

    private ListView listView;
    private ArrayAdapter<String> adapter;
    private String[] timezones = TimeZone.getAvailableIDs();

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

        listView = findViewById(R.id.listView);
        adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, timezones);
        listView.setAdapter(adapter);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String timezone = adapter.getItem(position);
                Intent intent = new Intent();
                intent.putExtra('timezone', timezone);
                setResult(RESULT_OK, intent);
                finish();
            }
        });
    }
}
  1. 在你的主Activity中,设置TextView的点击事件,启动TimezoneListActivity。
public class MainActivity extends AppCompatActivity {

    private TextView textView;
    private static final int REQUEST_CODE = 1;

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

        textView = findViewById(R.id.textView);

        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, TimezoneListActivity.class);
                startActivityForResult(intent, REQUEST_CODE);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
            if (data != null && data.hasExtra('timezone')) {
                String timezone = data.getStringExtra('timezone');
                textView.setText(timezone);
            }
        }
    }
}
  1. 在你的布局文件activity_main.xml中,添加一个TextView。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="24sp"
        android:text="点击选择时区"
        android:layout_centerInParent="true"
        android:clickable="true"
        android:focusable="true"
        android:focusableInTouchMode="true" />
</RelativeLayout>

这样,当用户点击TextView时,会启动TimezoneListActivity,选择时区后会将选择的时区显示在TextView上。

Android Studio TextView 点击跳转时区选择列表

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

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