私のアプリケーションでは、Webサービスの応答を使用してビューを入力する必要があります。NPEを処理する方法
私は正しいWebサービスの応答を得ていますが、応答を使用してビューを満たすときに、デバイスで実行しているときにNPEを取得します。ただし、エミュレーターで実行すると正常に動作しています。
私はNPEの原因を見つけることができません、私のコードは、誰も助けることができますか?
getview()
メソッドの例外は、r2(holder.r2.setRating(ksrating_value_w_onedecimal);)
です。
スタックトレース:
07-20 17:21:21.357: ERROR/AndroidRuntime(4144): java.lang.NullPointerException
07-20 17:21:21.357: ERROR/AndroidRuntime(4144): at com.ibkr.roadbrake.RB_StaticSearchResults$StaticSearchResultsListViewAdapter.getView(RB_StaticSearchResults.java:810)
07-20 17:21:21.357: ERROR/AndroidRuntime(4144): at android.widget.AbsListView.obtainView(AbsListView.java:1385)
07-20 17:21:21.357: ERROR/AndroidRuntime(4144): at android.widget.ListView.measureHeightOfChildren(ListView.java:1213)
07-20 17:21:21.357: ERROR/AndroidRuntime(4144): at android.widget.ListView.onMeasure(ListView.java:1126)
07-20 17:21:21.357: ERROR/AndroidRuntime(4144): at android.view.View.measure(View.java:8020)
07-20 17:21:21.357: ERROR/AndroidRuntime(4144): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3023)
とJavaファイル:
public View getView(final int position, View convertView, ViewGroup parent)
{
class ViewHolder
{
RatingBar r1,r2,r3;
TextView ratingpts, ratingpks, ratingprr;
}
ViewHolder holder;
//if (convertView == null) {
convertView = mInflater.inflate(R.layout.stsearchresults_eachitem, null);
// Creates a ViewHolder and store references to the two children views
// we want to bind data to.
holder = new ViewHolder();
holder.r1 = (RatingBar)convertView.findViewById(R.id.small_ratingbar);
holder.ratingpts = (TextView)convertView.findViewById(R.id.ratingpts);
holder.r2 = (RatingBar)convertView.findViewById(R.id.kssmall_ratingbar);
holder.ratingpks = (TextView)convertView.findViewById(R.id.ratingpks);
holder.r3 = (RatingBar)convertView.findViewById(R.id.rrsmall_ratingbar);
holder.ratingprr = (TextView)convertView.findViewById(R.id.ratingprr);
/*convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
} */
float rating = RB_Constant.filterSearchResultObj.response.get(position).Rating;
float rating_value = Math.round(rating * 10);
float rating_value_w_onedecimal = rating_value/10;
try
{
holder.r1.setRating(rating_value_w_onedecimal);
}
catch(Exception e){
System.out.println("Error->"+e.toString()+" position "+position);
}
holder.ratingpts.setText(""+rating_value_w_onedecimal);
float ksrating = RB_Constant.filterSearchResultObj.response.get(position).KidsRating;
float ksrating_value = Math.round(ksrating * 10);
float ksrating_value_w_onedecimal = ksrating_value/10;
try{
holder.r2.setRating(ksrating_value_w_onedecimal);
}
catch(Exception e){
System.out.println("Error->"+e.toString()+" position "+position);
}
holder.ratingpks.setText(""+ksrating_value_w_onedecimal);
float rrrating = RB_Constant.filterSearchResultObj.response.get(position).RestRoomRating;
float rrrating_value = Math.round(rrrating * 10);
float rrrating_value_w_onedecimal = rrrating_value/10;
try{
holder.r3.setRating(rrrating_value_w_onedecimal);
}
catch(Exception e){
System.out.println("Error->"+e.toString()+" position "+position);
}
holder.ratingprr.setText(""+rrrating_value_w_onedecimal);
------------
------------
------------
}
nullになり、引数として渡すことができる文字列を調べます。 –
r2(評価バー2)で例外があります。私は正しいws応答を得た。エミュレータではNPEなしで動作しますが、デバイスではr2でNPEを取得しました。 – naresh
は明らかか、必要な情報はありますか? – naresh