2017-01-02 4 views
0

제목과 마찬가지로 다른 XML 파일에있는보기에 대해 OnClickListener를 설정하려고했습니다. 나는 예외를 얻지는 않았지만 작동하지 않는다. 다음 코드를 시도했다.main_activity.xml에없는보기에 대해 OnClickListener를 설정하는 방법은 무엇입니까?

LayoutInflater layoutInflater = getLayoutInflater(); 
    View view = layoutInflater.inflate(R.layout.single_row,null,false); 
    mImageButton = (ImageButton)view.findViewById(R.id.shareImageButton); 
    mImageButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Snackbar.make(v, "working on it", Snackbar.LENGTH_LONG) 
        .setAction("Action", null).show(); 
     } 
    }); 

내 ImageButton이 다른 XML 파일에 있습니다. NEEEDED HELP

+0

실제로 코드를 뭐하고하려고하는 당신 have는 onclicklistener를 설정하지만 뷰를 UI에 추가하지는 않습니다. 부모에게보기를 추가해야합니다. –

+0

부모에게보기를 추가하는 방법은 무엇입니까? 심지어 콘솔에 메시지를 표시하려고해도 작동하지 않습니다. –

+0

이것이 출처 인 xml은 이미 팽창 된 xml입니까? –

답변

0

제공되는 내용에 따라 상위 레이아웃에보기를 추가하지 않는 것으로 보입니다. 이 대부분이 (당신이 재생되지 적이하여 제공된 것 같은 부모 레이아웃을 가정

이미,하지만 당신은 단순히이

yourParentView.addView(view); 

처럼 원하는 한이 가능성이 늘 뭔가를보기를 추가, 영향을 팽창 부모의 중력과 함께) 왼쪽 상단 구석에보기를 배치합니다.

LayoutParams를 통해 원하는 위치에 뷰를 배치해야합니다.

예 RelativeLayout.LayoutParams 것 또는 당신이 선택한 당신의 LayoutParams을 만든 후에는 LinearLayout.LayoutParams

, 당신이 사용하는 것 대신이

yourParentView.addView(view, createdLayoutParams); 
+1

문제를 발견했습니다. 리스너 설정 코드를 recycleview.adapter 클래스로 옮겼습니다. 제대로 작동합니다. –

0

다른 single_row.xml을 main_activity.xml 파일에 포함시켜 사용하십시오. 당신의 main_activity.xml 파일 내부 코드 아래

붙여 넣기 :

<include layout:"@layout/single_row.xml" /> 

지금 당신이 main_activity.xml에서 다른 뷰와 같은 정상적인로하여 ImageButton을 사용할 수 있습니다. MainActivity.class의 onCreate() 메소드에 아래 코드를 추가하십시오.

ImageButton mImageButton = (ImageButton)findViewById(R.id.shareImageButton); 
mImageButton.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Snackbar.make(v, "working on it", Snackbar.LENGTH_LONG) 
       .setAction("Action", null).show(); 
    } 
}); 
+0

문제점을 발견했습니다. 리스너를 설정하는 코드를 recycleview.adapter 클래스로 옮겼습니다. 제대로 작동합니다. –

+0

솔루션을 얻게되어 기쁩니다. 내 대답이 다른 사람들에게 도움이되기를 바랍니다. :) –

관련 문제