ошибка при установке onclick для просмотра списка / json - PullRequest
0 голосов
/ 12 июля 2011

Я получаю исключение json, когда пытаюсь запустить свой код. Проблема происходит на слушателе onclick. Я пытаюсь заставить приложение перейти на статью RSS-канал при нажатии

Вот основное занятие

public class Blocku extends ListActivity {

private RssListAdapter adapter;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    List<JSONObject> jobs = new ArrayList<JSONObject>();
    try {
        jobs = BlockuReader.getLatestRssFeed();
    } catch (Exception e) {
        Log.e("RSS ERROR", "Error loading RSS Feed Stream >> " + e.getMessage() + " //" + e.toString());
    }

    adapter = new RssListAdapter(this,jobs);
    setListAdapter(adapter);
}

protected void onListItemClick(ListView l, View v, int position, long id) {
       super.onListItemClick(l, v, position, id);

       String link = null;
    try {
        String url = Article.getUrl().toString();

        link = adapter.getItem(position).getString(url).toString();
         Intent i = new Intent(Intent.ACTION_VIEW);
           i.setData(Uri.parse(link));
           startActivity(i);
    } catch (JSONException e) {
        Context context = getApplicationContext();
        CharSequence text = "error";
        int duration = Toast.LENGTH_SHORT;

        Toast toast = Toast.makeText(context, text, duration);
        toast.show();
        e.printStackTrace();
    }

    }

}

вот адаптер:

public class RssListAdapter extends ArrayAdapter<JSONObject> {

public RssListAdapter(Activity activity, List<JSONObject> imageAndTexts) {
    super(activity, 0, imageAndTexts);
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {

    Activity activity = (Activity) getContext();
    LayoutInflater inflater = activity.getLayoutInflater();

    // Inflate the views from XML
    View rowView = inflater.inflate(R.layout.image_text_layout, null);
    JSONObject jsonImageText = getItem(position);


    //////////////////////////////////////////////////////////////////////////////////////////////////////
    //The next section we update at runtime the text - as provided by the JSON from our REST call
    ////////////////////////////////////////////////////////////////////////////////////////////////////
    TextView textView = (TextView) rowView.findViewById(R.id.job_text);

    try {
        Spanned text = (Spanned)jsonImageText.get("text");
        textView.setText(text);

    } catch (JSONException e) {
        textView.setText("JSON Exception");
    }

    return rowView;

} 


}

и класс статьи

public class Article {

private long articleId;
private long feedId;
private String title;
private String description;
private String pubDate;
private static URL url;
private String encodedContent;

private static String link;
/**
 * @return the articleId
 */
public long getArticleId() {
    return articleId;
}
/**
 * @param articleId the articleId to set
 */
public void setArticleId(long articleId) {
    this.articleId = articleId;
}
/**
 * @return the feedId
 */
public long getFeedId() {
    return feedId;
}
/**
 * @param feedId the feedId to set
 */
public void setFeedId(long feedId) {
    this.feedId = feedId;
}
/**
 * @return the title
 */
public String getTitle() {
    return title;
}
/**
 * @param title the title to set
 */
public void setTitle(String title) {
    this.title = title;
}
/**
 * @return the url
 */
public static  URL getUrl() {
    return url;
}
/**
 * @param url the url to set
 */
public void setUrl(URL url) {
    Article.url = url;
}
/**
 * @param description the description to set
 */
public void setDescription(String description) {
    this.description = description;
}
/**
 * @return the description
 */
public String getDescription() {
    return description;
}
/**
 * @param pubDate the pubDate to set
 */
public void setPubDate(String pubDate) {
    this.pubDate = pubDate;
}
/**
 * @return the pubDate
 */
public String getPubDate() {
    return pubDate;
}
/**
 * @param encodedContent the encodedContent to set
 */
public void setEncodedContent(String encodedContent) {
    this.encodedContent = encodedContent;
}
/**
 * @return the encodedContent
 */
public String getEncodedContent() {
    return encodedContent;
}


}

1 Ответ

1 голос
/ 12 июля 2011

JSONException обычно генерируется, когда возникают проблемы с синтаксическим анализом.Проверьте, как вы анализируете JSON.это говорит о том, что вы пытаетесь получить значение для ключа с именем «затем он перечисляет нужный мне сайт»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...