将ClickListener分配给第二个布局中的按钮

时间:2018-06-08 09:46:16

标签: java android android-layout

我正在为一个应用程序(android)开发项目,我正在使用Android Studio为我的公司。问题是我在这种编程中是新手。我来自Windows VB,我担心在Android Java工作并不那么容易。

我已经为我的应用创建了一个基本界面,并选择了基于FrameLayout的应用程序(就像Panels中的VB一样)。到现在为止还挺好。

但是,由于ClickListener Button位于MainActivity,我在Button课程activity_main.xml上分配Button时遇到了麻烦文件。让我告诉你到目前为止我得到了什么:

拳头我在FrameLayout文件上创建了activity_main.xml<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"/>

MainActivity.java

然后,在onCreate内部bt001方法中,我将该按钮声明为setOnClickListener,并在FrameLayout上为其指定了.xml方法另一个fr001.xml文件(Button bt001 = (Button) findViewById(R.id.CO001); bt001.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view){ FrameLayout fr001 = (FrameLayout) findViewById(R.id.FR001); fr001.setVisibility(View.VISIBLE); fr001.removeAllViews(); View frcont = getLayoutInflater().inflate(R.layout.fr001, null); fr001.addView(frcont);}}); )的内容:

Visual Basic

这项工作完全没问题。几乎像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文件没有加载&#34;在.xml或类似的东西......

我已经尝试将第二个CO001文件链接到另一个活动并在您点击.xml按钮后启动它,但在这种情况下,第二个FrameLayout出现在原始{ {1}}并在应用程序屏幕上启动,我不想要。

我很肯定这个问题有一个简单的解决方案(或者可能不是!!)。你能帮我解决这个问题吗?任何帮助将非常感激。并且,一如既往地提前感谢你们。

1 个答案:

答案 0 :(得分:0)

你应该可以得到这样的按钮:

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);