2013-03-14 3 views
1

내 앱에는 세 개의 탭이 있습니다. 각 탭에는 몇 가지 컨트롤이 있습니다. 버튼에 대해 onClick 메서드를 구현하려고 시도했을 때 버튼이 손 제스처, 특히 클릭에 응답하지 않는 것으로 나타났습니다. 내가 무슨 일을탭 조각에서 응답하지 않음

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 


    <Button 
     android:id="@+id/edit_button" 
     android:layout_width="80dp" 
     android:layout_height="50dp" 
     android:layout_alignParentLeft="true" 
     android:layout_marginRight="10dp" 
     android:text="@string/edit_contact"/> 

    <Button 
     android:id="@+id/add_button" 
     android:layout_width="150dp" 
     android:layout_height="50dp" 
     android:layout_alignParentRight="true" 
     android:layout_marginLeft="10dp" 
     android:text="@string/add_contact"/> 



    <ListView 
     android:id="@+id/contact_list" 
     android:layout_width="320dp" 
     android:layout_height="380dp" 
     android:paddingTop="50dp" > 

    </ListView>  

</RelativeLayout> 

을했을 :

여기
package com.telkitty.myPetProject 

import android.app.Activity; 
import android.app.ListActivity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.widget.ListAdapter; 
import android.widget.ListView; 
import android.widget.Toast; 
import android.provider.Contacts; 
import android.provider.ContactsContract; 

public class ContactPage extends Fragment { 

    private static final int CONTACT_PICKER_RESULT = 1001; 

    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
     Activity activity = getActivity(); 

     if (activity != null) 
     {  
      addListenerOnButton();  
     } 
    } 

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 
     View view = inflater.inflate(R.layout.contact_page, container, false);  
     return view; 
    } 


    public void onListItemClick(ListView l, View v, int position, long id) { 
     Activity activity = getActivity(); 


    } 


    public void addListenerOnButton() 
    { 
     Button add = (Button) getView().findViewById(R.id.add_button); 
     add.setOnClickListener(new View.OnClickListener() 
     { 
     public void onClick(View v) 
     { 
      Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, 
        Contacts.CONTENT_URI); 
      startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT); 
     }}); 
    } 

} 

은 XML입니다 : 여기

는 탭의 클래스입니까? 다음으로

+0

오류가 있습니까? –

+0

오류가 발생하지 않습니다. 실행되면 onClick 내부의 코드가 호출되지 않습니다. –

+0

버튼이 클릭에 반응하지 않는 것 같습니다. 버튼은 클릭 동작을 가로 채지 않습니다. –

답변

0

좋아, 사실 내 단추는 실제로 ListView 아래에 있었으므로 마치 거기에있는 것처럼 보였지만 클릭 할 때마다 ListView가 실제로 선택되었습니다.

표시된 줄을 추가 했으므로 버튼이 제대로 작동합니다.

0

당신의 FragmentonCreateView(..)에 뷰를 정의하고 리스너를 등록 :

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 
     View view = inflater.inflate(R.layout.contact_page, container, false); 
     Button lEditButton = (Button) view.findViewById(R.id.edit_button); 
     Button lAddButton = (Button) view.findViewById(R.id.add_button); 
     ListView lContactList = (ListView) view.findViewById(R.id.contact_list); 

     lEditButton.setOnClickListener(this); 
     lAddButton.setOnClickListener(this); 
     lContactList.setOnItemClickListener(this); 

     return view; 
    } 

onClickListeneronItemClickListener 인터페이스 구현 :

public class ContactPage extends Fragment implements onClickListener, onItemClickListener { 

을 당신이 강요 당할 것이다 이러한 인터페이스를 사용하여 버튼과 목록에 대한 작업을 처리 할 수있는 onClick(View v)onItemClick(..)을 재정의하십시오.

+0

답장을 보내 주셔서 감사합니다. 코드를 시도했지만 버튼이 여전히 클릭에 응답하지 않습니다. –

+0

탭 조각의 컨트롤이 다르게 작동합니까? –

+0

아니요, 동일하게 작동합니다. – DroidBender