Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 04/08/13, 17:41:16
Array

[xs_avatar]
rafaxplayer rafaxplayer no está en línea
Miembro del foro
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
pullToRefresh Libreria problema adapter

Hola comapñeros acabo de empezar a usar la libreria PullToRefresh para implementarla en una listaexpandible de rss que lleva mi proyecto , por lo que veo en los ejemplos se usa simpleexpandablelistadapter pero esto no me permite editar los items como yo quiero y uso un baseexpandablelistadapter en mi adapter, mi duda es que Los pulltorefresExpandableListView solo permiten ListAdapter y no el que yo uso , me da error en ListView.setadapter() porque no es un listadapter , como podría solucionar esto?

Mi java:

Código:
public class Rss extends SherlockActivity  {
private String rssURL="http://www.amsspecialist.com/feed.php?";
private PullToRefreshExpandableListView Listview;
 //private ExpandableListView ListView;
private RssAdapter adp;
private SharedPreferences Settings;

private Intent in;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_rss);
		Settings = PreferenceManager.getDefaultSharedPreferences(this);
		Listview=(PullToRefreshExpandableListView )findViewById(R.id.expandableListView1);
		Listview.setShowIndicator(false);
		
		
	}
	
	
	
	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		super.onResume();
		loadRss rss=new loadRss(this);
		rss.execute(rssURL);
		
	}


	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		MenuInflater inflater = getSupportMenuInflater();
		inflater.inflate(R.menu.rss, menu);
		return true;
	}
	
	
	
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// TODO Auto-generated method stub
		
		switch(item.getItemId()) {
		case R.id.config_rss:
			startActivity(new Intent(getBaseContext(),
					PreferenciasActivity.class));
		break;

		
		}
		return true;
	}


	private class loadRss extends AsyncTask<String,Void,String> {
		
		private ProgressDialog pDialog;
		private Context context;
		private ArrayList<rssItem> ListGroup;
		private ArrayList<ArrayList<String>> ListChilds;
		
		public loadRss(Context con){
			this.context=con;
			pDialog = new ProgressDialog(con);
		}
		@Override
		protected void onPreExecute() {
			
			
			pDialog.setMessage(getString(R.string.cargando));
			pDialog.setCancelable(true);
			pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
			pDialog.show();
		}
		
		@Override
		protected  String doInBackground(String... params) {
			// TODO Auto-generated method stub
			StringBuffer buf = new StringBuffer("");
			try {
				// Read all the text returned by the server
				URL xmlUrl = new URL(params[0]);
				InputStreamReader reader = new InputStreamReader(
						xmlUrl.openStream(), "UTF-8");

				BufferedReader in = new BufferedReader(reader);

				String str;
				while ((str = in.readLine()) != null) {

					buf.append(str + "\r\t");
				}

				in.close();
			} catch (IOException e) {
				e.printStackTrace();

			}

			return buf.toString();
	        
			
		}

		
		@Override
		protected void onPostExecute(String xml) {
			try {
				ListGroup = new ArrayList<rssItem>();
				ListChilds=new ArrayList<ArrayList<String>>();
				int  rssentryes=Integer.parseInt(Settings.getString("rssentryes", "10"));
				DocumentBuilderFactory dbf = DocumentBuilderFactory
						.newInstance();
				DocumentBuilder db = dbf.newDocumentBuilder();
				InputSource is = new InputSource();
				is.setCharacterStream(new StringReader(xml));
				Document doc = db.parse(is);
				NodeList posts = doc.getElementsByTagName("entry");
				for (int i = 0; i < posts.getLength(); i++) {
					rssItem rss = new rssItem();
					Element Post = (Element) posts.item(i);
					Node title = Post.getElementsByTagName("title").item(0);
					Log.d("title",title.getTextContent());
					rss.setTitle(title.getTextContent());
					Node link = Post.getElementsByTagName("id").item(0);
					Log.d("link",link.getTextContent());
					rss.setLink(link.getTextContent());
					Node author = Post.getElementsByTagName("name").item(0);
					Log.d("Author",author.getTextContent());
					rss.setAuthor(author.getTextContent());
					Node content = Post.getElementsByTagName(
							"content").item(0);
					Log.d("content",content.getTextContent());
					rss.setContent(content.getTextContent());
					ListGroup.add(rss);
					ArrayList<String> c=new ArrayList<String>();
					c.add(content.getTextContent());
					ListChilds.add(c);
					if(ListGroup.size() >= rssentryes) {
						break;
						}
					
				}
				
				adp = new RssAdapter(context, ListGroup,ListChilds);
				
				Listview.setAdapter(adp);
				
			}

			catch (Exception ex) {
				ex.printStackTrace();
			}

			
			pDialog.dismiss();
		}

		}
	
	private class RssAdapter extends BaseExpandableListAdapter  {
		private ArrayList<rssItem> listGroup;
		private ArrayList<ArrayList<String>> listChilds;
		private Context context;
		
		public RssAdapter(Context con,ArrayList<rssItem> groups,ArrayList<ArrayList<String>> childs) {
			this.listGroup=groups;
			this.listChilds=childs;
			this.context=con;
		}
		@Override
		public String getChild(int arg0, int arg1) {
			// TODO Auto-generated method stub
			return listChilds.get(arg0).get(arg1);
		}

		@Override
		public long getChildId(int arg0, int arg1) {
			// TODO Auto-generated method stub
			return 0;
		}

		@Override
		public int getChildrenCount(int arg0) {
			// TODO Auto-generated method stub
			return listChilds.get(arg0).size();
		}

		@Override
		public Object getGroup(int arg0) {
			// TODO Auto-generated method stub
			return null;
		}

		@Override
		public int getGroupCount() {
			// TODO Auto-generated method stub
			return listGroup.size();
		}

		@Override
		public long getGroupId(int arg0) {
			// TODO Auto-generated method stub
			return 0;
		}
		
		private class ViewHolder{
			TextView ttitle;
			TextView tauthor;
			TextView tcontent;
			ImageButton imgbut;
		}
		
		@Override
		public View getGroupView(int groupPosition, boolean isExpanded,
				View convertView, ViewGroup parent) {
			ViewHolder holder = new ViewHolder();
			if (convertView == null) {

				convertView = View.inflate(context, R.layout.rss_item, null);

				holder.ttitle = (TextView) convertView
						.findViewById(R.id.textView1);
				holder.tauthor = (TextView) convertView
						.findViewById(R.id.textView2);
				convertView.setTag(holder);
			}else {
				holder = (ViewHolder) convertView.getTag();
			}
			
			try 
			{
			holder.ttitle.setText(listGroup.get(groupPosition).getTitle() + " ");
			holder.tauthor.setText(getString(R.string.by) + " " + listGroup.get(groupPosition).getAuthor() + " ");
			}catch(Exception ex){
				ex.printStackTrace();
			}
			return convertView;

		}
		
		@Override
		public View getChildView(final int groupPosition, int childPosition,
				boolean isLastChild, View convertView, ViewGroup parent) {
			// TODO Auto-generated method stub
			ViewHolder holder = new ViewHolder();
			if (convertView == null) {
				convertView = View.inflate(context, R.layout.rss_subitem, null);
				holder.tcontent = (TextView) convertView
						.findViewById(R.id.textView1);
				holder.imgbut = (ImageButton) convertView
						.findViewById(R.id.imageButton1);
				convertView.setTag(holder);
			} else {
				holder = (ViewHolder) convertView.getTag();
			}
			try {

				holder.tcontent.setText(Html.fromHtml(this.getChild(groupPosition,childPosition)));
				holder.imgbut.setOnClickListener(new OnClickListener() {
					
					@Override
					public void onClick(View v) {
						in = new Intent(getBaseContext(), Web.class);
						in.putExtra("Url", listGroup.get(groupPosition).getLink());
						startActivity(in);
						
					}
				});
			} catch (Exception ex) {
				ex.printStackTrace();
			}
			
			return convertView;
		}
		
		@Override
		public boolean hasStableIds() {
			// TODO Auto-generated method stub
			return false;
		}

		@Override
		public boolean isChildSelectable(int arg0, int arg1) {
			// TODO Auto-generated method stub
			return true;
		}
		
		
	}

}
Responder Con Cita


  #2  
Viejo 05/08/13, 06:27:44
Array

[xs_avatar]
rafaxplayer rafaxplayer no está en línea
Miembro del foro
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
Si alguien conoce algun ejemplo de pulltorefresh con expandable que use baseadapter o adapter personalizado seria bueno , necesito ver la luz con esto
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 18:20:11 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /