..アンドロイド - リストビューのスクロールにNullPointerExceptionが私のカスタムリストビューを持ついくつかの問題を持って
各ビューをスクロールダウンした後に見ることができるビューを除いて、正常に動作しますクリックでリスナーを持っている、それはNullPointerExceptionがスローされますこれらのいずれかをクリックします。
これらのビューは、実際にスクロールする前に見ることができる場合には機能するので、少し混乱します。
カスタムリストビューのための私のコードを以下に示します。
public class UserListView extends ArrayAdapter<User>{
int resource;
Context context;
String response;
public UserListView(Context context, int resource, List<User> users){
super(context,resource,users);
this.resource=resource;
}
public View getView(int position, View convertView, ViewGroup parent){
LinearLayout userView;
User user = getItem(position);
userView = new LinearLayout(getContext());
String inflater = Context.LAYOUT_INFLATER_SERVICE;
LayoutInflater layoutInflate;
layoutInflate = (LayoutInflater)getContext().getSystemService(inflater);
layoutInflate.inflate(resource, userView, true);
TextView name = (TextView) userView.findViewById(R.id.name);
RatingBar userRating = (RatingBar) userView.findViewById(R.id.userRatingBar);
name.setText(String.valueOf(user.getName()));
float percentageNumber = ((float) user.getTotalQuestionsCorrect()/(float) user.getTotalQuestionsAnswered()) * 100;
int percentage = (int)percentageNumber;
setStars(userRating, percentage);
userView.setId(user.getUserId());
return userView;
}
private void setStars(RatingBar rb, int percent){
RatingBar starRating = rb;
int percentage = percent;
if(percentage <= 5){starRating.setRating(0);}
else if(percentage < 25){starRating.setRating(1);}
else if(percentage >= 25 && percentage < 50){starRating.setRating(2);}
else if(percentage >= 50 && percentage < 75){starRating.setRating(3);}
else if(percentage >= 75 && percentage < 100){starRating.setRating(4);}
else{starRating.setRating(5);}
}
}
すべてのヘルプは理解されるであろう:)おかげで、あなたのgetViewメソッドで起こっている奇妙なものがたくさんあります
こんにちはCaseyB、それが働いてしまったが、それは私には、getChildAtを使用してではなく、getItemAtPositionた私の主な活動の中から問題だったが判明し、まだ、あなたの説明は非常に有用だった:) – Draynaa