Montagem Layout

Bom dia a todos.

Preciso novamente da ajuda de vocês.

Meu problema é o seguinte, não estou sabendo fazer a montagem do layout.

Tenho uma lista no meu layout e preciso colocar um Banner no rodapé, só que esse Banner eu busco do AdsMobile.

A lista está sendo mostrada abaixo.

@Override
	public View getView(int position, View convertView, ViewGroup parent)
	{
		Episode episode = lista.get(position);
		
		LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		View v = inflater.inflate(R.layout.main, null);	
		
		TextView textTitle = (TextView) v.findViewById(R.id.title);
		textTitle.setText(episode.getTitle());
		
		ImageView imagemView = (ImageView) v.findViewById(R.id.icon);
		
		BitmapFactory.Options bmOptions;
		bmOptions = new BitmapFactory.Options();
		bmOptions.inSampleSize = 1;
		setBmp(LoadImage(episode.getStringUrl() ,bmOptions));
		
		imagemView.setImageBitmap(getBmp());
		
		TextView textDate = (TextView) v.findViewById(R.id.data);
		textDate.setText(episode.getDate());	
		   
		return v;
	}	

A chamada do Banner

AdView adView = (AdView)this.findViewById(R.id.adView);
adView.loadAd(new AdRequest());

Se eu coloco esse código dentro da view cada linha da lista é adicionada o Banner…

Alguem pode me ajudar…

Aguardo…

Cade seu XML?

o getView faz parte do Adapter que voce usa para preencher o ListView.

Se voce quer o banner fixo no rodapé, voce precisa montar isso fora do ListView.

Se voce quer o Banner como ultimo item da sua ListView, voce precisa retornar essa View no Adapter quando for a ultima linha.

Olá Marky…

O Xml não sei se está correto…

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
			    android:layout_width="fill_parent"
			    android:layout_height="wrap_content"
			    android:padding="5dp"
			    android:background="#cccccc">  		    
	<ImageView android:id="@+id/icon"
		       android:layout_width="60dp"
		       android:layout_height="60dp"
		       android:background="#ffffff"
		       android:layout_marginRight="6dip"   
		       android:scaleType="centerCrop"/>  
	<TextView android:id="@+id/data"
		      android:layout_width="wrap_content"
		      android:layout_height="wrap_content"
		      android:layout_x="60dip"
		      android:text="Data Noticia"
		      android:textSize="15sp"    
		      android:textColor="#333333"
		      android:paddingLeft="5dp" />
	<TextView android:id="@+id/title"
		      android:layout_width="wrap_content"
		      android:layout_height="wrap_content"
		      android:layout_x="60dip"
		      android:layout_y="30dip"
		      android:text="Titulo"
		      android:textColor="#333333"
		      android:paddingLeft="5dp" />     
	<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:ads="http://schemas.android.com/apk/res/br.com.logicadigital"
              android:layout_width="fill_parent"
              android:layout_height="50dip">
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_y="240px" >          
    <com.google.ads.AdView android:id="@+id/adView"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           ads:adUnitId="a14dc92df8531d5"
                           ads:adSize="esportes" />
    </FrameLayout>                  
</AbsoluteLayout> 

O Banner tem que estar fico na tela…

private void displayEpisodes(ArrayList<Episode> episodes) 
    {    	
    	ArrayList<Episode> lista = new ArrayList<Episode>();
    	
    	for (Episode episode : episodes) 
    	{
    		lista.add(new Episode(episode.getTitle(),episode.getStringUrl(), episode.getDate(), episode.getLink()));
    	}       	
    	setListAdapter(new EpisodeAdapter(this, lista));    	
    }		
public class EpisodeAdapter extends BaseAdapter
{
	private Context context;
	private Bitmap imagemUrl;
	private List<Episode> lista;

	public EpisodeAdapter(Context context, List<Episode> lista)
	{
		this.context = context;
		this.lista = lista;
	}
	
	public Bitmap getBmp() 
	{
		return imagemUrl;
	}

	public void setBmp(Bitmap imagemUrl) 
	{
		this.imagemUrl = imagemUrl;
	}
	
	public int getCount() 
	{
		return lista.size();
	}

	@Override
	public Object getItem(int position)
	{
		return lista.get(position);
	}

	@Override
	public long getItemId(int position)
	{
		return position;
	}
	
    //aqui é onde chama o layout main.xml e mostra o title e imagem
	@Override
	public View getView(int position, View convertView, ViewGroup parent)
	{
		Episode episode = lista.get(position);
		
		LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		View v = inflater.inflate(R.layout.main, null);	
		
		TextView textTitle = (TextView) v.findViewById(R.id.title);
		textTitle.setText(episode.getTitle());
		
		ImageView imagemView = (ImageView) v.findViewById(R.id.icon);
		
		BitmapFactory.Options bmOptions;
		bmOptions = new BitmapFactory.Options();
		bmOptions.inSampleSize = 1;
		setBmp(LoadImage(episode.getStringUrl() ,bmOptions));
		
		imagemView.setImageBitmap(getBmp());
		
		TextView textDate = (TextView) v.findViewById(R.id.data);
		textDate.setText(episode.getDate());	
		   
		return v;
	}	
	
	private Bitmap LoadImage(String URL, BitmapFactory.Options options)
	{      
		Bitmap bitmap = null;
		InputStream in = null;      
	    try 
	    {
	    	in = OpenHttpConnection(URL);
	        bitmap = BitmapFactory.decodeStream(in, null, options);
	        in.close();
	    } 
	    catch (IOException e1) 
	    {
	    }
	    return bitmap;              
	}	
	
	private InputStream OpenHttpConnection(String strURL) throws IOException
	{
		InputStream inputStream = null;
		URL url = new URL(strURL);
		URLConnection conn = url.openConnection();

		try
		{
			HttpURLConnection httpConn = (HttpURLConnection)conn;
			httpConn.setRequestMethod("GET");
			httpConn.connect();
			if (httpConn.getResponseCode() == HttpURLConnection.HTTP_OK) 
			{
				inputStream = httpConn.getInputStream();
			}
		}
		catch (Exception ex)
		{
		}
		return inputStream;
	}

}

Aguardo retorno…

POR FAVOR, NÃO USE AbsoluteLayout. Não existe nada que não seja possivel fazer com os LayoutManager convencionais.
Se voce quiser ter mais usuarios, não pode se prender a um tamanho fixo.

Mas sobre seu problema, voce tem que especificar no seu Layout onde vai seu AdView, que pelo o que parece está confuso por causa do AbsoluteLayout.

Sou nova nesta área, e está sendo complicado na montagem de layout, principalmente na chamada do Banner, não sei o local certo de chamar, como no
getView já está a lista e não sei como chamar o banner.

É nisso que está complicado pra mim, não sei se do jeito que fiz a chamada da lista consigo colocar outros componentes na tela.

esqueci de colocar…

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="com.google.ads.AdView">
        <attr name="adSize">
            <enum name="esportes" value="1" />
        </attr>
        <attr name="adUnitId" format="string" />
    </declare-styleable>
</resources>

Bom dia a todos…

 Desconsidera o exemplo acima, fiz um exemplo mais simples para poder ter um entendimento melhor sobre getView. Vou postar o exemplo simples de lista

e gostaria de adicionar a Banner Ads Mobile fixa no Rodapé do layout.


main. 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="@+id/listview" android:layout_width="fill_parent"
		android:layout_height="wrap_content" android:scrollbars="none"></ListView>
</LinearLayout>

mylist.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent" android:layout_height="wrap_content">
	<TextView android:id="@+id/text" android:layout_width="wrap_content"
		android:layout_height="wrap_content" android:textColor="#099900" />
	<ImageView android:layout_width="wrap_content"
		android:layout_height="wrap_content" android:scaleType="center"
		android:id="@+id/imgview" android:src="@drawable/icon"
		android:layout_centerInParent="true" />
	<CheckBox android:id="@+id/chkbox" android:layout_width="wrap_content"
		android:layout_height="wrap_content" android:checked="true"
		android:layout_alignParentRight="true" android:layout_marginRight="10dip" />

        //Abaixo seria o Banner não sei se seria aqui que deveria ficar......
	<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
	            android:orientation="vertical" 
	            android:layout_width="fill_parent"
	            android:layout_height="fill_parent">
		<TextView android:layout_width="fill_parent"
			      android:layout_height="wrap_content" 
			      android:text="@string/test_text" 
		/>
		<RelativeLayout android:layout_alignParentBottom="true" 
		                android:layout_height="wrap_content" 
		                android:layout_width="match_parent" 
		                android:id="@+id/ad_layout">
		</RelativeLayout>
	</RelativeLayout>	
</RelativeLayout>


classe ListaActivity
public class ListaActivity extends Activity  
{
	ListView mListview;

	public void onCreate(Bundle savedInstanceState) 
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		mListview = (ListView) findViewById(R.id.listview);
		mListview.setAdapter(new mCustomList(this));
	}

	public class mCustomList extends BaseAdapter 
	{
		private Context mContext;

		public mCustomList(Context c) {
			mContext = c;
		}

		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return COUNTRIES.length;
		}

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

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

		@Override
		public View getView(int position, View converView, ViewGroup parent) 
		{
			View List;

			if (converView == null) 
			{
				Log.d("converView", "converView"+converView);
				List = new View(mContext);
				LayoutInflater mLayoutinflater = getLayoutInflater();
				List = mLayoutinflater.inflate(R.layout.mylist, parent, false);
			} 
			else 
			{
				List = (View) converView;
			}
			ImageView imageView = (ImageView) List.findViewById(R.id.imgview);
			TextView textView = (TextView) List.findViewById(R.id.text);
			CheckBox chkbox = (CheckBox) List.findViewById(R.id.chkbox);
			textView.setText(COUNTRIES[position]);
			
			return List;
		}

	}

	static final String[] COUNTRIES = new String[] { "Afghanistan", "Albania",
			"Algeria", "American Samoa", "Andorra", "Angola", "Anguilla",
			"Antarctica", "Antigua and Barbuda", "Argentina", "Armenia",
			"Aruba", "Australia", "Austria", "Azerbaijan", "Bahrain",
			"Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin",
			"Bermuda", "Bhutan", "Bolivia", "Bosnia and Herzegovina",
			"Botswana", "Bouvet Island", "Brazil",
			"British Indian Ocean Territory", "British Virgin Islands",
			"Brunei", "Bulgaria", "Burkina Faso", "Burundi", "Cote d'Ivoire",
			"Cambodia", "Cameroon", "Canada", "Cape Verde", "Cayman Islands",
			"Central African Republic", "Chad", "Chile", "China",
			"Christmas Island", "Cocos (Keeling) Islands", "Colombia",
			"Comoros", "Congo", "Cook Islands", "Costa Rica", "Croatia",
			"Cuba", "Cyprus", "Czech Republic",
			"Democratic Republic of the Congo", "Denmark", "Djibouti",
			"Dominica", "Dominican Republic", "East Timor", "Ecuador", "Egypt",
			"El Salvador", "Equatorial Guinea", "Eritrea", "Estonia",
			"Ethiopia", "Faeroe Islands", "Falkland Islands", "Fiji",
			"Finland", "Former Yugoslav Republic of Macedonia", "France",
			"French Guiana", "French Polynesia", "French Southern Territories",
			"Gabon", "Georgia", "Germany", "Ghana", "Gibraltar", "Greece",
			"Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala",
			"Guinea", "Guinea-Bissau", "Guyana", "Haiti",
			"Heard Island and McDonald Islands", "Honduras", "Hong Kong",
			"Hungary", "Iceland", "India", "Indonesia", "Iran", "Iraq",
			"Ireland", "Israel", "Italy", "Jamaica", "Japan", "Jordan",
			"Kazakhstan", "Kenya", "Kiribati", "Kuwait", "Kyrgyzstan", "Laos",
			"Latvia", "Lebanon", "Lesotho", "Liberia", "Libya",
			"Liechtenstein", "Lithuania", "Luxembourg", "Macau", "Madagascar",
			"Malawi", "Malaysia", "Maldives", "Mali", "Malta",
			"Marshall Islands", "Martinique", "Mauritania", "Mauritius",
			"Mayotte", "Mexico", "Micronesia", "Moldova", "Monaco", "Mongolia",
			"Montserrat", "Morocco", "Mozambique", "Myanmar", "Namibia",
			"Nauru", "Nepal", "Netherlands", "Netherlands Antilles",
			"New Caledonia", "New Zealand", "Nicaragua", "Niger", "Nigeria",
			"Niue", "Norfolk Island", "North Korea", "Northern Marianas",
			"Norway", "Oman", "Pakistan", "Palau", "Panama",
			"Papua New Guinea", "Paraguay", "Peru", "Philippines",
			"Pitcairn Islands", "Poland", "Portugal", "Puerto Rico", "Qatar",
			"Reunion", "Romania", "Russia", "Rwanda", "Sqo Tome and Principe",
			"Saint Helena", "Saint Kitts and Nevis", "Saint Lucia",
			"Saint Pierre and Miquelon", "Saint Vincent and the Grenadines",
			"Samoa", "San Marino", "Saudi Arabia", "Senegal", "Seychelles",
			"Sierra Leone", "Singapore", "Slovakia", "Slovenia",
			"Solomon Islands", "Somalia", "South Africa",
			"South Georgia and the South Sandwich Islands", "South Korea",
			"Spain", "Sri Lanka", "Sudan", "Suriname",
			"Svalbard and Jan Mayen", "Swaziland", "Sweden", "Switzerland",
			"Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand",
			"The Bahamas", "The Gambia", "Togo", "Tokelau", "Tonga",
			"Trinidad and Tobago", "Tunisia", "Turkey", "Turkmenistan",
			"Turks and Caicos Islands", "Tuvalu", "Virgin Islands", "Uganda",
			"Ukraine", "United Arab Emirates", "United Kingdom",
			"United States", "United States Minor Outlying Islands", "Uruguay",
			"Uzbekistan", "Vanuatu", "Vatican City", "Venezuela", "Vietnam",
			"Wallis and Futuna", "Western Sahara", "Yemen", "Yugoslavia",
			"Zambia", "Zimbabwe" };
}

Observação: O Banner está funcionando e a lista de noticias também só queria saber como juntar os dois, esse exemplo acima conseguindo juntar o banner
consigo montar o layout do projeto.

Aguardo retorno.