목록보기가 있고 스크롤 할 수 있습니다. 목록 뷰 항목이 거의없고 데이터베이스에서 가져온 것입니다. 내 문제는, 각 listview 항목을 단추가 있고 getView 내부 단추에 setOnclickListener했습니다. 이제 5 개의 항목이 있고 항목 번호 1의 버튼을 탭하면 위치는 0이고 목록의 끝으로 스크롤하면 항목 번호 5의 버튼이 클릭 된 것을 볼 수 있습니다. 목록의 중간까지 스크롤 할 때, 때로는 버튼이 무작위로 클릭되고 내 logcat에서 볼 수 있습니다, particullar 버튼의 위치는 0입니다. 어떻게?스크롤 할 때 버튼 onclick의 위치가 목록보기로 변경됩니다.
여기 내의 getView '코드
public View getView(final int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.newsfeed_layout, parent, false);
}
final Button btnLike = (Button) v.findViewById(R.id.buttonLike);
btnLike.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String buttonText = btnLike.getText().toString();
if(buttonText.equals("LIKE")){
Toast.makeText(postedItems.this, "Liked This item" + position, Toast.LENGTH_SHORT).show();
btnLike.setPadding(4,0,12,0);
btnLike.setText("UNLIKE");
btnLike.setTextColor(Color.parseColor("#ffffff"));
btnLike.setBackgroundResource(R.drawable.likedredbutton);
}else if(buttonText.equals("UNLIKE")){
Toast.makeText(postedItems.this, "Unlike This Item" + position, Toast.LENGTH_SHORT).show();
btnLike.setPadding(4,0,20,0);
btnLike.setText("LIKE");
btnLike.setTextColor(Color.parseColor("#737373"));
btnLike.setBackgroundResource(R.drawable.cornerstyledbutton);
}
}
});
return v;
}
안녕하세요. 시간과 솔루션을 제공해 주셔서 감사합니다. 나는 당신의 솔루션과 다소 혼동 스럽다. isLiked (position)는 데이터를 쿼리하지만 데이터를 쿼리하는 방법은 무엇입니까? 몇 가지 간단한 코드를 공유 할 수 있습니까? 고맙습니다. – Chivaa
어댑터에 각 뉴스 피드 항목에 대한 배열 또는 목록이 포함되어있는 것 같습니다. 맞습니까? 거기에 "좋아하는"깃발이 있어야합니다. – matiash
그래, 내가 그것을 시도하고 결과를 업데이 트하자. 그동안 고맙습니다. :) – Chivaa