在我的应用程序中,relatediveLayout setOnClickListener没有工作,我无法在这里找出问题所在。 这是我的main.xml
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/profile_relative"
android:layout_marginTop="1dp"
android:id="@+id/profile_linear">
<RelativeLayout
android:id="@+id/profile_postButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginLeft="1dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/profile_post_btn"
android:layout_centerInParent="true"
android:background="@drawable/post_selector_t"/>
<TextView
android:id="@+id/profile_post_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_centerInParent="true"
android:text="189"
android:textSize="14sp"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/profile_gradeButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginLeft="1dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/profile_likes_btn"
android:layout_centerInParent="true"
android:background="@drawable/likes_selector_t"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/profile_likes_text"
android:layout_marginTop="20dp"
android:layout_centerInParent="true"
android:text="597"
android:textSize="14sp"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/profile_subscriptionButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginLeft="1dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/profile_signed_on_btn"
android:layout_centerInParent="true"
android:background="@drawable/signed_on_selector_t"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/profile_signed_on_text"
android:layout_marginTop="20dp"
android:layout_centerInParent="true"
android:text="85"
android:textSize="14sp"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/profile_subsribersButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginLeft="1dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/profile_followers_btn"
android:layout_centerInParent="true"
android:background="@drawable/followers_selector_t"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/profile_followers_text"
android:layout_marginTop="20dp"
android:layout_centerInParent="true"
android:text="118"
android:textSize="14sp"/>
</RelativeLayout>
</LinearLayout>
这是我的片段
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.profile, container, false);
view.findViewById(R.id.profile_postButton).setOnClickListener(this);
view.findViewById(R.id.profile_gradeButton).setOnClickListener(this);
view.findViewById(R.id.profile_subsribersButton).setOnClickListener(this);
view.findViewById(R.id.profile_subscriptionButton).setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.profile_postButton:
System.out.println("AA");
break;
case R.id.profile_gradeButton:
System.out.println("GG");
break;
case R.id.profile_subscriptionButton:
System.out.println("EE");
break;
case R.id.profile_subsribersButton:
System.out.println("DD");
break;
}
}
任何想法我想念的地方。
答案 0 :(得分:1)
我认为您必须将onClick
块代码移到onCreate
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.profile, container, false);
view.findViewById(R.id.profile_postButton).setOnClickListener(this);
view.findViewById(R.id.profile_gradeButton).setOnClickListener(this);
view.findViewById(R.id.profile_subsribersButton).setOnClickListener(this);
view.findViewById(R.id.profile_subscriptionButton).setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.profile_postButton:
System.out.println("AA");
break;
case R.id.profile_gradeButton:
System.out.println("GG");
break;
case R.id.profile_subscriptionButton:
System.out.println("EE");
break;
case R.id.profile_subsribersButton:
System.out.println("DD");
break;
}
答案 1 :(得分:-3)
以XML格式添加:
android:onClick="onClick";
到每个按钮。