java - Android 单击小部件时启动新 Activity

标签 java android xml android-studio

我是 Android 应用程序的 Java 和 xml 编码新手,我想知道单击某些内容时如何启动/打开新 Activity 。在本例中,我使用相对布局将图像和文本保留为一个对象。我想做的是,当您单击它时,它将启动/打开新 Activity 。我该怎么做呢?有人可以一步一步地告诉我,因为我对此很陌生。

最佳答案

首先,如果您希望布局 (RelativeLayout) 像按钮一样工作(不要处理布局子组件上的 onClick),请首先在 xml 布局中设置文件 RelativeLayout 属性

android:clickable="true"

或者您可以直接在代码中执行此操作(在 onCreate 方法中)

relativeLayout.setClickable(true);

您需要为您的布局设置onClickListener
您可以简单地通过创建匿名类来做到这一点

relativeLayout.setOnClickListener(new OnClickListener() 
         {

            @Override
            public void onClick(View v)
             {
              Intent startActivityIntent = new Intent(getApplicationContext(),YourDesiredActivity.class);
              startActivity(startActivityIntent);
             }
          }

更新

布局是在xml文件中定义的,当然在Android中你可以在代码中做到这一点,但最好使用xml文件。

在您的 IDEA 中,您有文件夹 res->layout,您应该在此处放置布局文件。例如名称为“

”的布局

relative_root_layout.xml

    <xml version="1.0" encoding="utf-8"?>
    <RelativeLayout 
       xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@+id/relative_layout"
android:layout_height="wrap_content" android:layout_width="wrap_content">
        <ImageView
          android:id="@+id/image_view">
          android:layout_width="wrap_content"
          android:src="@drawable/icon"
          android:layout_height="wrap_content"
          android:layout_alignParentTop="true"
        ImageView>
        <TextView
          android:id="@+id/text_view"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:textSize="20sp"
          android:layout_toRightOf="@+id/image_view"
          android:text="Relative layout">
       TextView>
    RelativeLayout>

但是如果您只有文本和图像,最好使用

<Button
 android:id="@+id/button"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:drawableLeft="@android:drawable/btn_image"
 android:text="Button with Image"
 android:gravity="left"
 android:drawablePadding="10dp">
Button>

如何访问您的小部件?
如果您正在为 Android 开发,这是您必须了解的非常基本的事情,这是必不可少的部分。请阅读文档、阅读书籍、观看教程或其他内容。

简而言之,您需要在 Activity onCreate() 方法中膨胀布局 相对布局 mRelativeLayout;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.relative_root_layout);
        mRelativeLayout = (RelativeLayout) findViewById(R.id.relative_layout);
        mRelativeLayout.setOnClickListener(.....)

}

但是您必须了解这些非常基本的事情。

关于java - Android 单击小部件时启动新 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30562256/

相关文章:

java - jgrapht 示例中的 DefaultEdge.class 意味着什么

android - Robotium 中整个测试超时

android - Google Maps API - 从郊区的起点到终点标记一条街道

Java - 从 XML 文件中读取注释

java - 获取没有 XML 根 JAXB 的多个元素

java - 使用包含 $$ 字符的 SQLExec 执行文件

java - 为什么在这个简单的程序中 setBackground 不立即并一致地更新背景颜色

Java 对等网络应用程序 - 作业

android - 创建双行项目布局后无用的属性

php - XML 到 MySQL 检查 XML 字段是否为空