Android:通过onClick on LinearLayout开始一项新活动

时间:2018-03-19 19:00:57

标签: java android xml

Click here to see xml result 我正在尝试通过点击LinearLayout来访问edit_profile_fragment

主要事件

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout


        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginStart="15dp"
            android:layout_marginTop="15dp"
            android:layout_marginBottom="20dp"
            android:orientation="vertical">


            <LinearLayout
                android:id="@+id/editProfile"
                android:clickable="true"
                android:focusable="true"
                android:paddingTop="15dp"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">

            <LinearLayout

                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="10dp"
                android:orientation="horizontal">

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/location" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:gravity="center"
                    android:paddingStart="20dp"
                    android:text="My address"
                    android:textSize="14sp" />

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginEnd="30dp">

                    <ImageView

                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentEnd="true"
                        android:layout_centerVertical="true"
                        android:src="@drawable/arrow_expand" />

                </RelativeLayout>

            </LinearLayout>

            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="45dp">

                <View

                    style="@style/Divider"
                    android:layout_gravity="bottom" />
            </RelativeLayout>

            </LinearLayout>



        </LinearLayout>

</android.support.design.widget.CoordinatorLayout>

MainActivity.java ///////////////////////////////////////// ///////////////////

public LinearLayout getLinearLayout() {
        linearLayout = (LinearLayout) findViewById(R.id.editProfile);
        linearLayout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(AccountActivity.this,EditProfileFragment.class);
                startActivity(intent);
            }
        });
        return linearLayout;
    }

正如您所看到的,我有一个可点击的LinearLayout,但是当我点击它时它不会启动新的活动或片段! 先谢谢你。

2 个答案:

答案 0 :(得分:0)

onClick方法中使用此代码的和平。

FragmentTransaction transaction = getFragmentManager();
transaction.beginTransaction()
        .replace(R.id.editProfile, new EditProfileFragment())
        .commit();

答案 1 :(得分:0)

首先。在点击getLinearLayout()之前,您是否曾致电方法LinearLayout?第二件事 - 你有多种布局&#34;覆盖&#34;您的LinearLayout因此您需要将其属性(线性的所有子项)设置为android:clickable="false",将LinearLayout设置为android:clickable="true",最后设置为第三项:您有很多嵌套布局这是一种可怕的做法。你应该肯定它是平的(考虑ConstraintLayout),但它不是你的问题..