
我从DB获取标题列表,并使用ArrayList将这些标题添加到布局中.此布局是使用适配器创建的.当我点击此布局中显示的标题时,我想打开另一个布局.如何解决这个问题?有什么建议请….
import java.io.BufferedReader;import java.io.inputStream;import java.io.inputStreamReader;import java.util.ArrayList;import org.apache.http.httpentity;import org.apache.http.httpResponse;import org.apache.http.clIEnt.httpClIEnt;import org.apache.http.clIEnt.methods.httpPost;import org.apache.http.impl.clIEnt.DefaulthttpClIEnt;import org.Json.JsONArray;import org.Json.JsONException;import org.Json.JsONObject;import androID.os.Bundle;import androID.app.ListActivity;import androID.util.Log;import androID.vIEw.VIEw;import androID.Widget.ArrayAdapter;import androID.Widget.ListVIEw;import androID.Widget.TextVIEw;public class FullDetails extends ListActivity { ArrayList<String> ListItems=new ArrayList<String>();ArrayAdapter<String> adapter; private ListVIEw lv; int clickCounter=0; @OverrIDe protected voID onCreate(Bundle icicle) { super.onCreate(icicle); setContentVIEw(R.layout.activity_full_details); adapter=new ArrayAdapter<String>(this,androID.R.layout.simple_List_item_1,ListItems); setlistadapter(adapter); fullitems(null); }JsONArray all=new JsONArray(); String size; public voID fullitems(VIEw v) { String result = ""; inputStream is=null; try{ httpClIEnt httpclIEnt = new DefaulthttpClIEnt(); httpPost httppost = new httpPost("http://MOTal.com/and/events.Jsp"); httpResponse response = httpclIEnt.execute(httppost); httpentity entity = response.getEntity(); is = entity.getContent(); }catch(Exception e){ Log.e("log_tag", "Error in http connection "+e.toString()); } try{ BufferedReader reader = new BufferedReader(new inputStreamReader(is,"iso-8859-1"),8); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readline()) != null) { sb.append(line + "\n"); } is.close(); result=sb.toString(); }catch(Exception e){ Log.e("log_tag", "Error converting result "+e.toString()); } try{ JsONArray jArray = new JsONArray(result); for(int i=0;i<jArray.length();i++){ JsONObject Json_data = jArray.getJsONObject(i); size=Json_data.getString("size"); for(int j=0;j<Integer.parseInt(size);j++){ all=Json_data.getJsONArray("res"+j);ListItems.add(all.get(0)+" \n venue:"+all.get(1)+" Price:"+all.get(3)); } } } catch(JsONException e){ Log.e("log_tag", "Error parsing data "+e.toString()); } adapter.notifyDataSetChanged(); }}activity_full_details.xml
<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:orIEntation="vertical" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" > <ListVIEw androID:ID="@androID:ID/List" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" androID:drawSelectorOntop="false" /></linearLayout>解决方法:
您正在寻找的是列表项单击侦听器.你可以尝试下面的lv.setonItemClickListener就是你的例子.
ListVIEw.setonItemClickListener(new OnItemClickListener() { @OverrIDe public voID onItemClick(AdapterVIEw<?> parent, VIEw vIEw, int position, long ID) { Toast.makeText(getApplicationContext(), "Click ListItem Number " + position, Toast.LENGTH_LONG) .show(); }}); 按照这个基本example
并且没有像onClick到ArrayList那样,为视图设置了点击.
总结以上是内存溢出为你收集整理的android – 如何动态添加onclick到arraylist全部内容,希望文章能够帮你解决android – 如何动态添加onclick到arraylist所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)