日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android listview asynctask,关于android:ListView + ArrayList + AsyncTask

發布時間:2025/3/12 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android listview asynctask,关于android:ListView + ArrayList + AsyncTask 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本問題已經有最佳答案,請猛點這里訪問。

我的想法是使用AsynTask下載數據集并存儲在arrayList中。 我已經檢查并運行良好。

在onPostExecute方法中,我調用一個函數來更新listView,然后加載存儲在ArrayList中的數據。

碼:

protected void onPostExecute(String result)

{

progressDialog.setProgress(99);

actualizarDisplay();

}

方法actulizarDisplay:

dataAdapter = new MyCustomAdapter(this,R.layout.servicio, listaServicios);

ListView listView = (ListView) findViewById(R.id.listaServ);

listView.setAdapter(dataAdapter);

和類MyCustomAdapter:

private class MyCustomAdapter extends ArrayAdapter

{

private ArrayList servicioList;

public MyCustomAdapter(Context context, int textViewResourceId,ArrayList servicioList)

{

super(context, textViewResourceId,servicioList);

this.servicioList = new ArrayList();

this.servicioList.addAll(servicioList);

}

private class ViewHolder

{

TextView nombre, hora, lugar, fecha;

ImageView tipo;

}

@Override

public View getView(int position, View convertView, ViewGroup parent)

{

ViewHolder holder = null;

if (convertView == null)

{

LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);

convertView = vi.inflate(R.layout.servicio, null);

holder = new ViewHolder();

holder.nombre = (TextView) convertView.findViewById(R.id.titulo);

holder.lugar = (TextView) convertView.findViewById(R.id.lugar);

holder.hora = (TextView) convertView.findViewById(R.id.hora);

holder.fecha = (TextView) convertView.findViewById(R.id.fecha);

convertView.setTag(holder);

}

else

{

holder = (ViewHolder) convertView.getTag();

}

Servicio servicio = servicioList.get(position);

Log.i("ConvertView", servicio.getNombre()); // the correct value is displayed

holder.nombre.setText(servicio.getNombre());

holder.hora.setText(servicio.getHora());

holder.lugar.setText(servicio.getLugar());

holder.fecha.setText(servicio.getFecha());

if (servicio.tipo == 0)

holder.tipo.setImageResource(R.drawable.cultural);

return convertView;

}

}

這是logcat中的錯誤,第423行是:holder.nombre.setText(servicio.getNombre());

FATAL EXCEPTION: main java.lang.NullPointerException at

app.serviciosprote.Inicio$MyCustomAdapter.getView(Inicio.java:423)

at android.widget.AbsListView.obtainView(AbsListView.java:2350)

at android.widget.ListView.measureHeightOfChildren(ListView.java:1409)

at android.widget.ListView.onMeasure(ListView.java:1273)

at android.view.View.measure(View.java:15286)

at android.widget.RelativeLayout.measureChild(RelativeLayout.java:602)

at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:415)

at android.view.View.measure(View.java:15286)

at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4832)

at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1390)

at android.widget.LinearLayout.measureVertical(LinearLayout.java:681)

at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)

at android.view.View.measure(View.java:15286)

at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4832)

at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)

at android.view.View.measure(View.java:15286)

at android.widget.LinearLayout.measureVertical(LinearLayout.java:833)

at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)

at android.view.View.measure(View.java:15286)

at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4832)

at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)

at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2269)

感謝您的幫助

我認為問題已經解決,并且是如果TextView的文本很長且不適合,則會失敗

您的解釋沒有任何意義。 您描述的內容不會導致您發布的堆棧跟蹤。

關于點擊監聽器上的事件,用谷歌搜索,您會發現足夠的tut可以幫助您..問另一個問題可能是一個騙子。

Comment

這可能意味著您的第一個textview不在此xml文件中

servicio.xml

沒有ID為titulo的textview

holder.nombre = (TextView) convertView.findViewById(R.id.titulo);

因此空指針

仔細檢查您是否在正確的xml中使用正確的ID調用正確的textview

謝謝。 您能說說我如何為點擊事件做一個聽眾嗎?

問另一個問題。

總結

以上是生活随笔為你收集整理的android listview asynctask,关于android:ListView + ArrayList + AsyncTask的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。