Hai qualche Consiglio/Critica/Suggerimento relativo al forum? Diccelo qui.Ti entusiasma l'idea di un forum italiano di Android? Vorresti partecipare in qualche modo?Scrivi un Tutorial o fai richiesta di ammissione nello Staff
Quello che hai postato é lo screenshot di un programma che fa uso delle api di ricerca integrate, che android mette a disposizione per tutti:Quick Search Box | Android Developers
nel LinearLayout come si fa a dire, "continua fino alla fine dello schermo"
android:layout_weight="1"
package org.liquidjournal;import java.util.ArrayList;import java.util.Iterator;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.KeyEvent;import android.view.View;import android.view.inputmethod.InputMethodManager;import android.widget.AdapterView;import android.widget.EditText;import android.widget.ListView;import android.widget.TextView;import android.widget.AdapterView.OnItemClickListener;import android.widget.TextView.OnEditorActionListener;public class Search extends Activity{ ArrayList<Resource> resources = new ArrayList<Resource>(); protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.search); final EditText ed = (EditText) findViewById(R.id.searchbox); for (int i = 0 ; i<10 ; i++){ Resource resource = new Resource(i,"Risorsa","http://www.prova.it/"+i,"io"); resources.add(resource); } final ResourceAdapter adapter =new ResourceAdapter(this, R.layout.resource, resources); ListView lv = ((ListView)findViewById(R.id.viewsearch)); lv.setAdapter(adapter); lv.setTextFilterEnabled(true); lv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { if (!adapter.getItem(arg2).expanded){ setExpanded(arg2); adapter.notifyDataSetChanged(); } else { Intent viewIntent = new Intent("android.intent.action.VIEW", Uri.parse(adapter.getItem(arg2).uri)); startActivity(viewIntent); } } }); ed.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (event != null&& (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) { InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); in.hideSoftInputFromWindow(ed .getApplicationWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); resources.clear(); for (int i = 0 ; i<10 ; i++){ Resource resource = new Resource(i,"Risorsacercata","http://www.prova.it/"+i,"io"); resources.add(resource); } adapter.notifyDataSetChanged(); } return false; } }); } public void setExpanded(int position){ Iterator<Resource> itr = resources.iterator(); while(itr.hasNext()){ itr.next().expanded=false; } resources.get(position).expanded = true; } }
import java.util.ArrayList;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ArrayAdapter;import android.widget.TextView;public class ResourceAdapter extends ArrayAdapter<Resource>{ private ArrayList<Resource> items; public ResourceAdapter(Context context, int textViewResourceId, ArrayList<Resource> items) { super(context, textViewResourceId, items); this.items = items; } public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; Resource o = items.get(position); if (o != null) { if (v == null) { LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); if (!o.expanded) v = vi.inflate(R.layout.resource, null); else v = vi.inflate(R.layout.resourceextended, null); } if (!o.expanded){ TextView tt = (TextView) v.findViewById(R.id.name); TextView bt = (TextView) v.findViewById(R.id.uri); if (tt != null) { tt.setText(o.name); } if(bt != null){ bt.setText(o.uri); } } else { TextView tt = (TextView) v.findViewById(R.id.name); TextView bt = (TextView) v.findViewById(R.id.uri); TextView at = (TextView) v.findViewById(R.id.author); TextView at2 = (TextView) v.findViewById(R.id.author2); if (tt != null) { tt.setText(o.name); } if(bt != null){ bt.setText(o.uri); } if(at != null){ at.setText(o.author); } if(at2 != null){ at2.setText(o.author); } } } return v; } }