Home Menu

Menu



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


 
Herramientas
  #1  
Viejo 04/08/13, 17:41:16
Avatar de rafaxplayer
rafaxplayer rafaxplayer no está en línea
Miembro del foro
Mensajes: 224
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
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
Avatar de rafaxplayer
rafaxplayer rafaxplayer no está en línea
Miembro del foro
Mensajes: 224
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
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   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 18:19:58 (GMT +2)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007