2014-07-11 4 views
1

저는 Java를 처음 접했고 listviews에 익숙하지 않았습니다. 사용자 지정 목록 어댑터를 사용하여 목록 뷰에 항목을 성공적으로 추가 할 수있었습니다. 그러나 이제는 각 항목을 터치 할 때 작업을 수행하려고합니다.Java에서 Android 용으로 작동하도록 OnItemClickListener를 가져올 수 없습니다.

목록 항목을 건드렸을 때 실행되는 OnItemClickListener 이벤트를 얻을 수 없었습니다. 문제가있는 곳을 모르겠습니다.

코드 :

public class CustomList extends ArrayAdapter<String>{ 

private final Activity context; 
private final String[] titleId; 
private final String[] descriptionId; 
private final Integer[] pictureid; 

public CustomList(Activity context, 
String[] Headline, String[] Description, Integer[] imageId) { 
super(context, R.layout.single_row, Headline); 
this.context = context; 
this.titleId = Headline; 
this.descriptionId = Description; 
this.pictureid = imageId; 

} 
@Override 
public View getView(int position, View view, ViewGroup parent) { 
LayoutInflater inflater = context.getLayoutInflater(); 
View rowView= inflater.inflate(R.layout.single_row, null, true); 

TextView txtTitle = (TextView) rowView.findViewById(R.id.tvTitle); 
TextView txtDescription = (TextView) rowView.findViewById(R.id.tvDescription); 
ImageView imageView = (ImageView) rowView.findViewById(R.id.ivIcon); 

txtTitle.setText(titleId[position]); 
txtDescription.setText(descriptionId[position]); 
imageView.setImageResource(pictureid[position]); 
return rowView; 
} 

} 
+1

listView.setOnItemClickListener (이); 바로 after setAdapter() – zgc7009

+0

감사합니다. 추가 한 후에 OnItemClickListener 대신 OnItemClick 인 구현되지 않은 메서드를 추가하라는 메시지가 표시되었습니다. – jamesgates1

답변

0

콜백을 뷰에 링크하기위한 listView.setOnItemClickListener.

다음과 같이 할 수

: 귀하의 경우,

listView.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> adapter, View view,int pos, long id) { 
     //Your code here 
    } 
}); 

을하지만 활동이 이미 OnItemClickListener을 (구현으로 간단히 할 수있는) :

listView.setOnItemClickListener(this); 
0

당신의 ListView에 리스너를 설정합니다 :

listView.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     Log.e("CLICKED","CLICKED"); 
    } 
}); 
도움이된다면 또한

public class FragmentA extends Fragment implements OnItemClickListener{ 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

    View V = inflater.inflate(R.layout.fragment_a, container, false); 

    ListView listView = (ListView)V.findViewById(R.id.list); 


     getData data = getData.getMyData(); 


     CustomList adapter = new 
      CustomList(getActivity(), data.Headline.toArray(new String[data.Headline.size()]), data.Description.toArray(new String[data.Description.size()]), data.imageId.toArray(new Integer[data.imageId.size()]));  
     listView.setAdapter(adapter); 

    return V; 

} 

public void onItemClickListener(AdapterView<?> parent, View view, int position, long id) 
{ 
    Log.e("CLICKED","CLICKED"); 
} 
} 

, 여기에 사용자 정의 어댑터 클래스에 대한 코드

관련 문제