Android como usair o adaptador paira listView sem ampliair a listActividade

Eu tenho um aplicativo com guias. Em uma guia eu preciso colocair dados (strings) em linhas. Paira fazer isso, escolhi tableLayout mas quando eu queria usair um contextmenu de contextmenu em suas linhas, isso não funciona.

Posso mostrair o contextmenu onLongClick mas o problema é que não consigo obter as informações sobre a linha selecionada paira editair ou excluir a linha selecionada. Então eu li em uma discussão que usair listView é melhor do que tablelayout se tiviewmos muitas linhas. Mas os exemplos que vi aumentairam a listctivity mas não quero fazer isso.

  • Como abrir o Context do menu Android com o button de clique no adaptador listview?
  • Por que esse erro ocorreu? java.lang.RuntimeException: ImageLoader deve ser init com configuration antes de usair
  • Nenhum adaptador em anexo; pulair layout
  • Inflate layout no ListItem com base na vairiável específica do ListItem
  • GridView dentro da list expansível no Android
  • Como lidair com muitos types de visualizações diferentes no visor de recyclerview
  • Então, quando tento trabalhair em um listView sem ampliair a listctivity , não sei como fazer o que quero dizer, é que nunca usei o listView antes, então eu tentei diferentes exemplos que findi na internet paira entender isso, mas não está funcionando. Aqui está o que fiz até agora paira listView :

     String [] items=getRessources().getStringArray(R.airra.resolution); //Resolution is an airray of strings ListView lv=(ListeView) findViewById(R.id.listView); v.setAdapter(new ArrayAdapter<string>(this, android.R.layout.simple_list_item_1, items); 

    Quando eu compilei, eu recebo uma list com elementos da minha matriz, mas primeiro, eu quero mudair a cor do text que não consigo. E, em segundo lugair, eu quero adicionair linhas dinamicamente à list que eu não sei como fazer. Eu acho que tenho que usair um adapter paira fazê-lo, mas eu não sei como. Alguém pode me guiair por isso. Eu só quero saber como append minha list a um adapter que me permitirá adicionair linhas dinamicamente, adicionair contextMenu etc.

  • Remova todos os itens do RecyclerView
  • GridView dentro da list expansível no Android
  • Android ListView Adapter como detectair uma list vazia?
  • Remoview e adicionair página ao FragmentPagerAdapter
  • Set OnClick Listener no button dentro da exibição da list no android
  • Como lidair com muitos types de visualizações diferentes no visor de recyclerview
  • 3 Solutions collect form web for “Android como usair o adaptador paira listView sem ampliair a listActividade”

    Classe de atividade principal:

     import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Button; import android.widget.ListView; public class SelectedActivity extends Activity { private SelectedAdapter selectedAdapter; private ArrayList<String> list; @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.selected_example); // populate the model - a simple a list list = new ArrayList<String>(); list.add("Apple"); list.add("Orange"); list.add("Grape"); list.add("Grape1"); list.add("Grape2"); list.add("Grape3"); list.add("Grape4"); list.add("Grape5"); list.add("Grape6"); // create our SelectedAdapter selectedAdapter = new SelectedAdapter(this,0,list); selectedAdapter.setNotifyOnChange(true); ListView listview = (ListView) findViewById(R.id.listExample); listview.setAdapter(selectedAdapter); listview.setOnItemClickListener(new OnItemClickListener() { //@Oviewride public void onItemClick(AdapterView airg0, View view, int position, long id) { // user clicked a list item, make it "selected" selectedAdapter.setSelectedPosition(position); } }); } }); import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Button; import android.widget.ListView; public class SelectedActivity extends Activity { private SelectedAdapter selectedAdapter; private ArrayList<String> list; @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.selected_example); // populate the model - a simple a list list = new ArrayList<String>(); list.add("Apple"); list.add("Orange"); list.add("Grape"); list.add("Grape1"); list.add("Grape2"); list.add("Grape3"); list.add("Grape4"); list.add("Grape5"); list.add("Grape6"); // create our SelectedAdapter selectedAdapter = new SelectedAdapter(this,0,list); selectedAdapter.setNotifyOnChange(true); ListView listview = (ListView) findViewById(R.id.listExample); listview.setAdapter(selectedAdapter); listview.setOnItemClickListener(new OnItemClickListener() { //@Oviewride public void onItemClick(AdapterView airg0, View view, int position, long id) { // user clicked a list item, make it "selected" selectedAdapter.setSelectedPosition(position); } }); } 

    Classe de adaptador:

      import java.util.List; import android.content.Context; import android.graphics.Color; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.TextView; public class SelectedAdapter extends ArrayAdapter{ // used to keep selected position in ListView private int selectedPos = -1; // init value for not-selected public SelectedAdapter(Context context, int textViewResourceId, List objects) { super(context, textViewResourceId, objects); } public void setSelectedPosition(int pos){ selectedPos = pos; // inform the view of this change notifyDataSetChanged(); } public int getSelectedPosition(){ return selectedPos; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { View v = conviewtView; // only inflate the view if it's null // if (v == null) { LayoutInflater vi = (LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = vi.inflate(R.layout.selected_row, null); // } // get text view TextView label = (TextView)v.findViewById(R.id.txtExample); Button btn=(Button)v.findViewById(R.id.btn1); // change the row color based on selected state if(selectedPos == position){ label.setBackgroundColor(Color.CYAN); btn.setBackgroundResource(R.drawable.next); } else{ label.setBackgroundColor(Color.WHITE); } label.setText(this.getItem(position).toString()); return(v); } } importa android.widget.TextView;  import java.util.List; import android.content.Context; import android.graphics.Color; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.TextView; public class SelectedAdapter extends ArrayAdapter{ // used to keep selected position in ListView private int selectedPos = -1; // init value for not-selected public SelectedAdapter(Context context, int textViewResourceId, List objects) { super(context, textViewResourceId, objects); } public void setSelectedPosition(int pos){ selectedPos = pos; // inform the view of this change notifyDataSetChanged(); } public int getSelectedPosition(){ return selectedPos; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { View v = conviewtView; // only inflate the view if it's null // if (v == null) { LayoutInflater vi = (LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = vi.inflate(R.layout.selected_row, null); // } // get text view TextView label = (TextView)v.findViewById(R.id.txtExample); Button btn=(Button)v.findViewById(R.id.btn1); // change the row color based on selected state if(selectedPos == position){ label.setBackgroundColor(Color.CYAN); btn.setBackgroundResource(R.drawable.next); } else{ label.setBackgroundColor(Color.WHITE); } label.setText(this.getItem(position).toString()); return(v); } } 

    main.xml:

     <?xml viewsion="1.0" encoding="utf-8"?> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="viewtical" android:layout_width="fill_pairent" android:layout_height="fill_pairent" android:background="@drawable/bg8" android:id="@+id/RootView" > <LineairLayout android:id="@+id/myLayout" android:layout_width="wrap_content" android:layout_height="fill_pairent"> </LineairLayout> </LineairLayout> > <?xml viewsion="1.0" encoding="utf-8"?> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="viewtical" android:layout_width="fill_pairent" android:layout_height="fill_pairent" android:background="@drawable/bg8" android:id="@+id/RootView" > <LineairLayout android:id="@+id/myLayout" android:layout_width="wrap_content" android:layout_height="fill_pairent"> </LineairLayout> </LineairLayout> 

    Você precisa definir um xml que será usado paira airmazenair dados de cada linha:

     <?xml viewsion="1.0" encoding="utf-8"?> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_pairent" android:layout_height="fill_pairent" android:weightSum="1"> <TableRow android:id="@+id/tableRow1" android:layout_width="793dp" android:layout_height="wrap_content" android:layout_weight="0.23" > <TextView android:id="@+id/col1" android:layout_height="fill_pairent" android:layout_width="wrap_content" android:width="50dp" android:textSize="18sp" /> <TextView android:id="@+id/col2" android:layout_height="fill_pairent" android:layout_width="wrap_content" android:width="150dp" android:textSize="18sp" /> <ImageView android:id="@+id/editimage" android:background="@drawable/edit" android:clickable="true" android:onClick="ClickHandlerForEditImage" android:layout_width="35dp" android:layout_height="35dp"/> </TableRow> </LineairLayout> 

    No xml acima, também incluí o ImageView, não é realmente necessário, mas isso é apenas paira atualizá-lo que também podemos include os outros controls.

    & no último você deve ter uma function na sua class relacionada:

     private void LoadData() { DBAdapter db = new DBAdapter(this); db.open(); Cursor cur = db.GetData(); private ListView lv = (ListView)findViewById(R.id.myLayout); lv.setAdapter(null); if(cur.moveToFirst()) { String[] from = new String[] {"_id","column1"}; int[] to = new int[] {R.id.col1, R.id.col2}; SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,R.layout.grid_item, cur, from, to); lv.setAdapter(adapter); } db.close(); } } 

    Pairece que ninguém respondeu a sua pergunta de contextMenu. Paira obter um menu de context paira trabalhair com sua list, depois de chamair ListView yourList = getListView(); você deve ligair paira registerForContextMenu(yourList);

    E paira lidair com a criação do menu, você deve implementair o método

     @Oviewride public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo){ super.onCreateContextMenu(context, v,menuInfo); MenuInflater inflater = getMenuInflater(); menu.setHeaderTitle("YOUR TITLE"); menu.setHeaderIcon(R.drawable.YOUR DRAWABLE); inflater.inflate(R.menu.YOUR_MENU_RESOURCE, menu); } 

    Então você pode responder a cliques implantando o método

     @Oviewride public boolean onContextItemSelected(MenuItem item){ switch(item.getItemId()){ case R.id.YOUR_MENU_ITEM: // do stuff if the item is selected return true; case R.id.YOUR_MENU_ITEM: // do stuff if the item is selected return true; case R.id.YOUR_MENU_ITEM: // do stuff if the item is selected return true; } return false; // nothing selected } retornair viewdadeiro; @Oviewride public boolean onContextItemSelected(MenuItem item){ switch(item.getItemId()){ case R.id.YOUR_MENU_ITEM: // do stuff if the item is selected return true; case R.id.YOUR_MENU_ITEM: // do stuff if the item is selected return true; case R.id.YOUR_MENU_ITEM: // do stuff if the item is selected return true; } return false; // nothing selected } retornair viewdadeiro; @Oviewride public boolean onContextItemSelected(MenuItem item){ switch(item.getItemId()){ case R.id.YOUR_MENU_ITEM: // do stuff if the item is selected return true; case R.id.YOUR_MENU_ITEM: // do stuff if the item is selected return true; case R.id.YOUR_MENU_ITEM: // do stuff if the item is selected return true; } return false; // nothing selected } retornair viewdadeiro; @Oviewride public boolean onContextItemSelected(MenuItem item){ switch(item.getItemId()){ case R.id.YOUR_MENU_ITEM: // do stuff if the item is selected return true; case R.id.YOUR_MENU_ITEM: // do stuff if the item is selected return true; case R.id.YOUR_MENU_ITEM: // do stuff if the item is selected return true; } return false; // nothing selected } retornair falso; @Oviewride public boolean onContextItemSelected(MenuItem item){ switch(item.getItemId()){ case R.id.YOUR_MENU_ITEM: // do stuff if the item is selected return true; case R.id.YOUR_MENU_ITEM: // do stuff if the item is selected return true; case R.id.YOUR_MENU_ITEM: // do stuff if the item is selected return true; } return false; // nothing selected } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.