首页 > 解决方案 > 该按钮不可见,它将连接 android studio 中的另一个活动

问题描述

我和我的朋友正在为我们的项目创建一个 android 应用程序,我们是新手,如果您认为代码重复,请发布链接。

我们参考了以下 YouTube 视频 - https://youtu.be/wbsWVtCdiW4

现在我们正在为我们的应用程序创建一个基本结构。以下是输入 activity_main.xml 的代码,该代码用于应连接到其他活动的按钮,但在模拟器和我的手机上运行代码后,应用程序显示空白屏幕。

<?xml version="1.0" encoding="utf-8"?>
  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context=".MainActivity">
  <Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="157dp"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentBottom="true"
    android:layout_marginStart="119dp"
    android:layout_marginLeft="119dp"
    android:layout_marginTop="251dp"
    android:layout_marginEnd="97dp"
    android:layout_marginRight="97dp"
    android:layout_marginBottom="323dp"
    android:background="@android:color/holo_blue_light"
    android:onClick="startdbapp"
    android:text="start db app"
    android:textColor="#F8000000"
    android:visibility="visible"
    tools:visibility="visible" />
  </RelativeLayout>

这是 MainActivity.java

package com.login.sqlitedemoapp;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {

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

    public void startdbapp(View view) {
        new DbManager(this);
        startActivity(new Intent(this, InsertData.class));
    }
}

这是我的第二个名为 activity_insert_data.xml 的活动文件

 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context=".InsertData">

 <EditText
    android:id="@+id/t1"
    android:layout_width="242dp"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentBottom="true"
    android:layout_marginStart="94dp"
    android:layout_marginLeft="80dp"
    android:layout_marginTop="99dp"
    android:layout_marginEnd="75dp"
    android:layout_marginRight="80dp"
    android:layout_marginBottom="587dp"
    android:ems="10"
    android:hint="Enter_Name"
    android:inputType="textPersonName" />

 <EditText
    android:id="@+id/t2"
    android:layout_width="242dp"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentBottom="true"
    android:layout_marginStart="89dp"
    android:layout_marginLeft="80dp"
    android:layout_marginTop="194dp"
    android:layout_marginEnd="80dp"
    android:layout_marginRight="80dp"
    android:layout_marginBottom="492dp"
    android:ems="10"
    android:hint="Enter_Email"
    android:inputType="textEmailAddress" />

 <EditText
    android:id="@+id/t3"
    android:layout_width="241dp"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentBottom="true"
    android:layout_marginStart="88dp"
    android:layout_marginLeft="88dp"
    android:layout_marginTop="290dp"
    android:layout_marginEnd="82dp"
    android:layout_marginRight="82dp"
    android:layout_marginBottom="396dp"
    android:ems="10"
    android:hint="Enter_Course"
    android:inputType="textPersonName" />

 <Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="68dp"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentBottom="true"
    android:layout_marginStart="76dp"
    android:layout_marginLeft="76dp"
    android:layout_marginTop="395dp"
    android:layout_marginEnd="62dp"
    android:layout_marginRight="62dp"
    android:layout_marginBottom="268dp"
    android:onClick="addRecord"
    android:text="Insert Record" />

 </RelativeLayout>

这是名为 InsertData.java 的主要活动

 package com.login.sqlitedemoapp;
 import android.os.Bundle;
 import android.view.View;
 import android.widget.EditText;
 import android.widget.Toast;
 import androidx.appcompat.app.AppCompatActivity;

 public class InsertData extends AppCompatActivity
 {
  EditText t1,t2,t3;

  @Override
  protected void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_insert_data);
    t1=(EditText)findViewById(R.id.t1);
    t2=(EditText)findViewById(R.id.t2);
    t3=(EditText)findViewById(R.id.t3);
  }

     public void addRecord(View view)
          {
                DbManager db = new DbManager(this);

    String res = db.addRecord(t1.getText().toString(), t2.getText().toString(), 
    t3.getText().toString());
    Toast.makeText(this, res, Toast.LENGTH_LONG).show();
    t1.setText("");
    t2.setText("");
    t3.setText("");
     }
   }

标签: javaandroidandroid-studioandroid-layout

解决方案


我建议您使用约束布局。相对布局是旧的,大多数开发人员都避免使用它们。另外,检查按钮的约束。


推荐阅读