У меня проблемы с заполнением ListView
. Logcat показывает NullPointerExcepton
. Я также разместил код и logcat ниже.
Код был написан на скорую руку, и я только начинающий. Поэтому, пожалуйста, укажите на любые ошибки или предложения.
package com.rj.unical;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import android.app.Activity;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class UnicalNotificationsActivity extends ListActivity {
String notificationlinks[] = new String[100];
String notificationnames[] = new String[100];
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Create a list view
new DownloadNotificationTask().execute();
}
/////////////////////////
private class DownloadNotificationTask extends AsyncTask<String, Void, String> {
@Override
protected void onPreExecute(){
Toast.makeText(UnicalNotificationsActivity.this ,"Loading", Toast.LENGTH_LONG);
}
@Override
protected void onPostExecute(String result) {
ArrayAdapter<String> adapter=new ArrayAdapter<String>(UnicalNotificationsActivity.this,R.layout.exams,notificationnames);
setListAdapter(adapter);
ListView lv = getListView();
//Set item click listener
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
//When an item is clicked, send the corresponding link to getResults class
Intent i = new Intent(getApplicationContext(), getResults.class);
i.putExtra("examlink", notificationlinks[(int)arg3]);
startActivity(i);
}
});
}
@Override
protected String doInBackground(String... arg0) {
URL uni = null;
try {
uni = new URL("http://universityofcalicut.info/index.php?option=com_content&task=view&id=744&Itemid=324");
} catch (MalformedURLException e) {
e.printStackTrace();
}
String url=uni.toString();
Document doc = null;
try {
doc = Jsoup.connect(url).get();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Elements links = doc.select("a[href]");
int index=-1;
int i=0;
//Iterate every link and select only those with the string containing 202.88.252.6
for (Element link : links) {
index=-1;
index=link.attr("abs:href").indexOf(".pdf");
if(index!=-1 && link.attr("abs:href")!=null && link.text()!=null && link.text()!=" " && i<100)
{
//Store the link and corresponding names
notificationlinks[i]=link.attr("abs:href");
notificationnames[i]=link.text();
Log.d("PDF FOUND", notificationlinks[i]);
}
}
return null;
}
}
///////////////
}
вот логкат
03-06 11:11:43.116: D/PDF FOUND(2626): http://universityofcalicut.info/notifications/CCSSUGIII120112.pdf
03-06 11:11:43.126: D/PDF FOUND(2626): http://universityofcalicut.info/notifications/NotfnIIIBAMS12112.pdf
03-06 11:11:43.137: D/PDF FOUND(2626): http://universityofcalicut.info/notifications/NotifnMomoeoThesis12112.pdf
03-06 11:11:43.166: D/PDF FOUND(2626): http://universityofcalicut.info/notifications/NotifnPGCCSS1stFolkloreExamchange10112.pdf
03-06 11:11:43.176: D/PDF FOUND(2626): http://universityofcalicut.info/notifications/NotiBA_POT_%20PvtRegn2012.pdf
03-06 11:11:43.196: D/PDF FOUND(2626): http://universityofcalicut.info/notifications/MEDexamchange020112.pdf
03-06 11:11:43.216: D/PDF FOUND(2626): http://universityofcalicut.info/notifications/afsaladibprefinal2012.pdf
03-06 11:11:43.236: D/AndroidRuntime(2626): Shutting down VM
03-06 11:11:43.236: W/dalvikvm(2626): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
03-06 11:11:43.256: E/AndroidRuntime(2626): FATAL EXCEPTION: main
03-06 11:11:43.256: E/AndroidRuntime(2626): java.lang.NullPointerException
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:355)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.widget.AbsListView.obtainView(AbsListView.java:1315)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.widget.ListView.makeAndAddView(ListView.java:1727)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.widget.ListView.fillDown(ListView.java:652)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.widget.ListView.fillFromTop(ListView.java:709)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.widget.ListView.layoutChildren(ListView.java:1580)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.widget.AbsListView.onLayout(AbsListView.java:1147)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.view.View.layout(View.java:7035)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.view.View.layout(View.java:7035)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.view.View.layout(View.java:7035)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.view.View.layout(View.java:7035)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1125)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.widget.LinearLayout.onLayout(LinearLayout.java:1042)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.view.View.layout(View.java:7035)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.view.View.layout(View.java:7035)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.view.View.layout(View.java:7035)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.view.View.layout(View.java:7035)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.view.ViewRoot.performTraversals(ViewRoot.java:1045)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.os.Handler.dispatchMessage(Handler.java:99)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.os.Looper.loop(Looper.java:123)
03-06 11:11:43.256: E/AndroidRuntime(2626): at android.app.ActivityThread.main(ActivityThread.java:4627)
03-06 11:11:43.256: E/AndroidRuntime(2626): at java.lang.reflect.Method.invokeNative(Native Method)
03-06 11:11:43.256: E/AndroidRuntime(2626): at java.lang.reflect.Method.invoke(Method.java:521)
03-06 11:11:43.256: E/AndroidRuntime(2626): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
03-06 11:11:43.256: E/AndroidRuntime(2626): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
03-06 11:11:43.256: E/AndroidRuntime(2626): at dalvik.system.NativeStart.main(Native Method)