Java 将ClickListener分配给第二个布局中的按钮
我正在为一个应用程序(android)做一个项目,我正在为我的公司使用Java 将ClickListener分配给第二个布局中的按钮,java,android,android-layout,Java,Android,Android Layout,我正在为一个应用程序(android)做一个项目,我正在为我的公司使用android Studio。问题是我对这种编程一无所知。我来自windowsvb,恐怕在androidjava中工作并不是那么容易 我已经为我的应用程序制作了一个基本界面,并选择制作一个基于FrameLayout的应用程序(就像VB中的Panels)。到目前为止还不错 但是,我在为MainActivity类上的按钮分配ClickListener时遇到问题,因为该按钮不在activity\u main.xml文件中。让我向你展
android Studio
。问题是我对这种编程一无所知。我来自windowsvb
,恐怕在androidjava
中工作并不是那么容易
我已经为我的应用程序制作了一个基本界面,并选择制作一个基于FrameLayout
的应用程序(就像VB
中的Panels
)。到目前为止还不错
但是,我在为MainActivity
类上的按钮分配ClickListener
时遇到问题,因为该按钮不在activity\u main.xml
文件中。让我向你展示我迄今为止所取得的成果:
首先,我在activity\u main.xml
文件上创建了一个按钮和一个FrameLayout
:
<Button
android:id="@+id/CO001"
android:layout_marginLeft="@dimen/campo007_left"
android:layout_marginTop="@dimen/campo007_top"
android:layout_width="@dimen/campo007_width"
android:layout_height="@dimen/campo007_height"
android:text="@string/co001"
android:textSize="14sp"
android:textStyle="bold"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<FrameLayout
android:id="@+id/FR001"
android:layout_marginLeft="@dimen/field006_l"
android:layout_marginTop="@dimen/field006_t"
android:layout_width="@dimen/field006_w"
android:layout_height="@dimen/field006_h"
android:layout_marginStart="0dp"
android:visibility="invisible"
android:contentDescription="@string/app_name"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
这工作做得很好。几乎像visualbasic
。但是,在fr001.xml
上,我有另一个按钮:
<Button
android:id="@+id/FR001CO001"
android:layout_width="200dp"
android:layout_height="130dp"
android:layout_marginLeft="432dp"
android:layout_marginTop="54dp"
android:background="@android:color/holo_red_dark"
android:text="@string/ModA"
android:textSize="24sp"
android:textStyle="bold"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
当我试图为其分配setOnClickListener
方法时,应用程序崩溃。我想这是因为第二个.xml
文件没有“加载”到MainActivity
或类似的东西上
我已经尝试将第二个.xml
文件链接到另一个活动,并在单击CO001
按钮后启动它,但在这种情况下,第二个.xml
出现在原始框架布局上,并在应用程序屏幕上启动,我不希望这样
我肯定这个问题有一个简单的解决方案(或者可能没有!!)。你能帮我吗??任何帮助都将不胜感激。和往常一样,提前感谢大家。您应该能够获得这样的按钮:
LayoutInflater inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.fr001, null);
Button button = (Button) view.findViewById(R.id.FR001CO001);
这很简单,如果您想在主活动中显示第二个按钮,那么您必须在activity\u main.xml文件中包含或编写该xml代码。或者您可以进行另一个活动,创建另一个xml布局文件,并将该按钮放入其中?你给我的两个解决方案正是我不想做的…我能问一下你的第二个按钮到底在哪里吗?在您提到的frameLayout内部或其他地方?单击第一个按钮后,它位于frameLayout
内部。它在第二个.xml
文件中声明。如果在framelayout中使用它,则可以轻松访问它。但我不明白你到底在这里干什么。我可以拿到按钮。。。我不能做的是将onClickListener
方法分配给它。我现在这样做了,我的代码允许我在按钮上分配onClickListener
,您应该可以这样做。如果不能,可以尝试更改视图:view view=getLayoutInflater().inflate(R.layout.fr001,null)代码>
LayoutInflater inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.fr001, null);
Button button = (Button) view.findViewById(R.id.FR001CO001);