Istnieje ListView w mojej aplikacji i ListView ma selektor. Chcę, aby pierwsza pozycja tego ListView została wybrana jako jako domyślna na samym uruchomieniu uruchamiania aplikacji, w jaki sposób? Czy ktoś może dać wskazówki? Wielkie dzięki.Jak ustawić pierwszy element ListView jako domyślny przy uruchomieniu?
Odpowiedz
Można to zrobić przez
yourListView.setSelection(0);
yourListView.getSelectedView().setSelected(true);
Mam nadzieję, że to pomoże Ci
Utwórz onItemClickListener
następnie użyć tego fragmentu, wypełniając odpowiednie wartości:
listView.performItemClick(View view, int position, long id);
See the docs dla dalszego Szczegół.
Próbowałem, to nie działa ... – acoustic
Może powinieneś podać kod w tobie pytanie, aby pokazać nam, jak próbujesz to zrobić. – koopaking3
//put the below code in get view function
if(position==0)
{
convertView.setSelected(true);
}
Możesz zadzwonić pod numer listview.setSelection(0);
. Po prostu upewnij się, że wywołujesz to po przesłaniu swojego List
. Jeśli zadzwonisz przed zapełnianiem swojego List
, to nie zadziała, ponieważ nie będzie miał żadnych danych w tym czasie.
Myślę, że twoja odpowiedź jest odpowiednia i pomocna, ale nie działa, gdy umieściłem ją w moim kodzie, gdzie w myślach lista została zapełniona. Może coś złego w innym miejscu kodu ...... – acoustic
To by być lepszym, jeśli możesz napisać kod, jak go piszesz. –
@LalitPoptani możesz mi pomóc w tym http://stackoverflow.com/questions/18099756/default-selection-of-a--w-viewview-and-highlight-selected-row-android/18099844 ? noredirect = 1 # comment26498081_18099844 – Developer
myślę, że to będzie działać jak daliśmy 0 indeks tablicy do ListView
ListView.setSelection(0);
To nie działa –
yourlist.setItemChecked(position,true)
To działa, jeśli chcesz kliknij go, aby uzyskać dodatkowe obsługi zdarzeń zrobione:
listView.getAdapter().getView(position, null, null).performClick();
Możesz to naprawić w ten sposób.
//set list adapter, then
lv.setItemChecked(1, true);//position 1
lv.setSelection(1);//position 1
Uaktualnij układ XML za pomocą jednego wyboru.
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/list_item_background"
android:cacheColorHint="#FFFFFF"
android:choiceMode="singleChoice"
android:dividerHeight="1dip" >
</ListView>
ListView i ustawić jako tło XML list_item_background.xml,
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/bg_list_default" android:state_activated="false"/>
<item android:drawable="@drawable/bg_list_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/bg_list_pressed" android:state_activated="true"/>
To praca dla mnie. Mam nadzieję, że to Ci pomoże. :)
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// do someting...
if(position == 0){
mListView.performItemClick(convertView, 0, 0);
}
}
teraz znalazłem inny dobry sposób realizacji tego.
- Po pierwsze, należy ustawić ListView androida: choiceMode = singleChoice
drugie, tylko iść do przodu, jak postępować,
int defaultPositon = 0; int justIgnoreId = 0; mListView.setItemChecked(defaultPositon, true); mListView.performItemClick(mListView.getSelectedView(), defaultPositon, justIgnoreId);
To działa. Jeden problem rozwiązany, teraz następny: zaznaczony element nie jest podświetlany. WTF Android! –
Poniżej rozwiązanie działa dla mnie:
Ustawianie tła/Wyświetl identyfikator przy pobieraniu Wyświetl & przy użyciu metody setOnItemClickL istener Listy Zobacz
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)
ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.listitems, null);
}
ListItem m = items.get(position);
if (m != null) {
TextView txt = (TextView)v.findViewById(R.id.textView);
txt.setText(m.Item);
}
// set selected item
LinearLayout ActiveItem = (LinearLayout) v;
v.setId(position);
if (position == GetDeviceDetails.selectedsize)
{
ActiveItem.setBackgroundColor(0xFF7F8184);
}
return v;
}
W działalności na tworzenie:
listView1.setOnItemClickListener(
new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> adapter, View v, int position, long id) {
adapter.findViewById(GetDeviceDetails.selectedsize).setBackgroundColor(0xFFFFFFF);
GetDeviceDetails.selectedsize = position;
adapter.findViewById(position).setBackgroundColor(0xFF7F8184);
Log.d("Selected Id", "" + v.getId());
Log.d("find Selected Id", "" + adapter.findViewById(0));
}
});
listView1.setSelection(0);
listView1.setItemChecked(0, true);
Działa to dla ME.You musiał dokonać niestandardowego adaptera.
First Create Modal Class
public class FilterBean {
String filter_catagory;
boolean isSelected;
public boolean isSelected() {
return isSelected;
}
public void setSelected(boolean selected) {
isSelected = selected;
}
public String getFilter_catagory() {
return filter_catagory;
}
public void setFilter_catagory(String filter_catagory) {
this.filter_catagory = filter_catagory;
}
}
In Adapter Class
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
convertView = layoutInflater.inflate(R.layout.size_name_indicator, null);
txt = (TextView) convertView.findViewById(R.id.key_textView);
txt.setText(getItem(position).getFilter_catagory());
if(getItem(position).isSelected()){
txt.setBackgroundColor(context.getResources().getColor(R.color.transparent));
}else {
txt.setBackgroundColor(context.getResources().getColor(R.color.colorWhite));
}
return convertView;
}
public void updateNameBean(String key,boolean checked)
{
for(int i=0;i<getCount();i++)
{
FilterBean filterBean = getItem(i);
if(filterBean.getFilter_catagory().equals(key))
{
filterBean.setSelected(checked);
}else {
filterBean.setSelected(false);
}
}
notifyDataSetChanged();
}
In Filter Activity or Fragment
filter_listView.setAdapter(filterNameAdapter);
filterNameAdapter.updateNameBean(filterNameAdapter.getItem(0).getFilter_catagory(),true);
filter_listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
String key = filterNameAdapter.getItem(position).getFilter_catagory();
filterNameAdapter.updateNameBean(filterNameAdapter.getItem(position).getFilter_catagory(),true);
}
});
if(position == 0){
// This is the first item, you need to select this
//rowview which u inflate under getview
rowView.performClick();
}
myślę, że to pomoże. to działa dla mnie
- 1. Android: Aby ustawić element jako wybrany po otwarciu ListView?
- 2. Jak ustawić domyślny wybrany element w menu rozwijanym Railsy?
- 3. Jak ustawić Atom jako domyślny edytor?
- 4. Jak ustawić Json.NET jako domyślny Json Serializer
- 5. Android: jak ukryć element ListView?
- 6. Wyrażenia są dozwolone jako pierwszy element potoku
- 7. którego rdzeń jest inicjowany jako pierwszy po uruchomieniu systemu?
- 8. jak ustawić domyślny zestaw znaków?
- 9. Jak ustawić pierwszy indeks jako pusty w combobox
- 10. Jak ustawić "wstaw nowy wiersz" jako pierwszy wiersz w DataGridView
- 11. Jak ustawić Thin jako domyślny w Railsach 3
- 12. Jak ustawić niestandardowy program ładujący klasy jako domyślny?
- 13. Jak ustawić Json.Net jako domyślny serializer dla usługi WCF REST
- 14. Jak ustawić cairo jako domyślny backend dla x11() w R?
- 15. Czy można ustawić domyślny typ wyliczenia jako niepodpisany znak?
- 16. Jak ustawić domyślny interpreter PyCharm?
- 17. jak ustawić domyślny wygląd UISegmentedControl?
- 18. Jak ustawić amerykański format daty jako domyślny przy zapisywaniu do modelu w Railsach 3
- 19. Domyślny wybrany element Html.DropDownList
- 20. jak wyłączyć element w moim ListView
- 21. Zwróć pierwszy element w tablicy_agg()
- 22. Jak ustawić domyślny adres URL/trasę?
- 23. usuwa pierwszy element z macierzy
- 24. Jak ustawić domyślny format trasy w Railsach?
- 25. Android element ListView kulminacyjnym programowo
- 26. Jak ustawić wysokość wiersza ListView w Xamarin.Forms
- 27. Jak mogę ustawić domyślny import w JavaScript?
- 28. Jak ustawić domyślny nagłówek w Guzzle?
- 29. Jak ustawić domyślny Elixir zadanie mix
- 30. Jak ustawić domyślny projekt dla SBT
Głosowanie w dół za nie dostarczanie jakiegoś fragmentu, który ci pomoże, Bez zaglądania w twój kod, SO nie może odgadnąć, gdzie tkwisz. –
Zobacz także pełny przykład: http://stackoverflow.com/questions/30409421/listview-list-item-selection-and-initial-setting-custom-made-items – tjm1706