Java 如何单击jsonobject/listview提要项?
我正在努力学习本教程 我正在使用eclipse并为android 2.0开发 问题就在这里 *我不知道如何设置onclick侦听器或类似于每一篇文章的内容 *我想把它放到网站上这篇文章来自onclickJava 如何单击jsonobject/listview提要项?,java,android,rss,Java,Android,Rss,我正在努力学习本教程 我正在使用eclipse并为android 2.0开发 问题就在这里 *我不知道如何设置onclick侦听器或类似于每一篇文章的内容 *我想把它放到网站上这篇文章来自onclick public class Utezone extends ListActivity { private RssListAdapter adapter; /** Called when the activity is first created. */ @Override public void
public class Utezone 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 = RssReader.getLatestRssFeed();
} catch (Exception e) {
Log.e("RSS ERROR", "Error loading RSS Feed Stream >> " + e.getMessage() + " //" + e.toString());
}
adapter = new RssListAdapter(this,jobs);
setListAdapter(adapter);
}
public类Utezone扩展ListActivity{
专用RssListAdapter适配器;
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
列表作业=新建ArrayList();
试一试{
jobs=RssReader.getLatestRssFeed();
}捕获(例外e){
Log.e(“RSS错误”,“加载RSS提要流时出错>>”+e.getMessage()+“/”+e.toString());
}
适配器=新的RssListAdapter(此为作业);
setListAdapter(适配器);
}
}
公共类RssListAdapter扩展了ArrayAdapter{
公共RssListAdapter(活动、列表图像和文本){
超级(活动、0、图像和文本);
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
活动活动=(活动)getContext();
LayoutInflater充气器=活动。getLayoutInflater();
//从XML膨胀视图
视图行视图=充气机。充气(R.layout.image\u text\u layout,null);
JSONObject jsonImageText=getItem(位置);
//////////////////////////////////////////////////////////////////////////////////////////////////////
//下一节我们将在运行时更新文本——由REST调用中的JSON提供
////////////////////////////////////////////////////////////////////////////////////////////////////
TextView TextView=(TextView)rowView.findViewById(R.id.job_text);
试一试{
跨距文本=(跨距)jsonImageText.get(“文本”);
textView.setText(text);
}捕获(JSONException e){
setText(“JSON异常”);
}
返回行视图;
}
}
公共类RssReader{
私有最终静态字符串BOLD_OPEN=“”;
私有最终静态字符串BOLD_CLOSE=“”;
私有最终静态字符串中断=“
”;
私有最终静态字符串ITALIC_OPEN=“”;
私有最终静态字符串ITALIC_CLOSE=“”;
私有最终静态字符串SMALL_OPEN=“”;
私有最终静态字符串小_CLOSE=“”;
/**
*此方法定义一个提要URL,然后调用我们的SAX处理程序来读取文章列表
*从小溪
*
*@返回列表-适用于列表视图活动
*/
公共静态列表getLatestRssFeed(){
字符串feed=“thefedurl”;
RSSHandler rh=新的RSSHandler();
列表文章=rh.getLatestArticles(提要);
Log.e(“RSS错误”,“文章数”+articles.size());
返回数据(文章);
}
/**
*此方法获取项目对象列表,并将其转换为
*正确的JSON格式,以便我们的列表视图可以处理信息
*
*@param文章-列表
*@返回列表-适用于列表视图活动
*/
私有静态列表数据(列表项目){
列表项=新建ArrayList();
用于(第条:第条){
JSONObject当前=新的JSONObject();
试一试{
buildJsonObject(文章,当前);
}捕获(JSONException e){
e(“RSS错误”,“从RSS提要创建JSON对象时出错”);
}
项目。添加(当前);
}
退货项目;
}
/**
*此方法接受单个Article对象并将其转换为单个JSON对象
*包括一些额外的HTML格式,以便可以很好地显示它们
*
*@param文章
*@param电流
*@JSONException
*/
私有静态void buildJsonObject(Article-Article,JSONObject-current)抛出JSONException{
String title=article.getTitle();
字符串描述=article.getDescription();
字符串日期=article.getPubDate();
StringBuffer sb=新的StringBuffer();
sb.append(加粗打开)。append(标题)。append(加粗关闭);
某人追加(中断);
某人附加(描述);
某人追加(中断);
sb.append(小开)。append(斜体开)。append(日期)。append(斜体闭)。append(小闭);
current.put(“text”,Html.fromHtml(sb.toString());
}
}
onclicklistener绑定到listview。调用getListView()并将其设置为ListView ivar。在该ivar上,通过调用方法setOnItemClickListener()实现OnItemClickListener
ListView lw=getListView();
lw.setOnItemClickListener(新的OnItemClickListener)({
@凌驾
public void onItemClick(AdapterView父级、视图视图、int位置、长id){}
}));
由于活动扩展了ListActivity,您只需执行以下操作:
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
//do something
}
ListView lw = getListView();
lw.setOnItemClickListener(new OnItemClickListener({
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {}
}));
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
//do something
}