gpt4 book ai didi

java - Android 按钮改变 View

转载 作者:行者123 更新时间:2023-12-01 04:12:45 25 4
gpt4 key购买 nike

我有一个无法解决的问题,我对 Android 相当陌生,并且正在努力解决使用按钮更改布局 View 的基本概念。我的 Activity 主要是这样

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/bg"
android:orientation="vertical"
tools:context=".MainActivity" >

<DigitalClock
android:id="@+id/DigitalClock"
android:layout_width="fill_parent"
android:layout_height="100dp"

android:textColor="#ffffff"
android:gravity="center"
android:textSize="70sp" />


<View
android:layout_width="fill_parent"
android:layout_height="3dp"
android:background="@color/line"
/>

<Button
android:id="@+id/AddAlarm"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/add_button"
/>


<Button
android:id="@+id/AddAlarm2"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/add_button"
/>

我可以让 AddAlarm 按钮打开 add_alarm 布局。但是当我打开 add_alarm 时,该 View 上有一个按钮,我需要打开 add_alarm2,但它不起作用这是我的 MainActivity.java :

package com.example.emma;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.DigitalClock;

public class MainActivity extends Activity {

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

DigitalClock dc = (DigitalClock) findViewById(R.id.DigitalClock);



final Button button = (Button) findViewById(R.id.AddAlarm);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {

setContentView(R.layout.add_alarm);

}
});



final Button button1 = (Button) findViewById(R.id.AddAlarm2);
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {

setContentView(R.layout.add_alarm2);

}
});

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}

我有点理解如何使用按钮单击来更改 View ,但我显然做错了。这是我的 add_alarm2 布局代码。但是,当您单击图像按钮 android:id="@+id/AddAlarm2"时,它不会执行任何操作,而是打开 View add_alarm2.xml 任何帮助将不胜感激

这是我的 add_alarm2.xml 文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@color/bg"
tools:context=".MainActivity" >

<ImageButton
android:id="@+id/AddAlarm2"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@null"
android:src="@drawable/normal"
android:scaleType="fitCenter"
/>

<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="@color/line"
/>


</LinearLayout>

最佳答案

一种快速而肮脏的方法是将您想要显示的 View 放入 Activity_main.xml BUT 中,并且 visibility=GONE。使用view.setVisibility(View.VISIBLE);

然后,当您单击按钮时,您可以将此元素的可见性切换为可见。 setContentView 只能在 onCreate() 中使用一次,多次调用可能会产生意外结果。

更好的方法是探索其他替代方案,例如 ViewSwitcher ,它将使代码更清晰。

关于java - Android 按钮改变 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19759085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com