Как отключить конкретный элемент списка в представлении списка в android?

Как отключить конкретный элемент списка в режиме просмотра списка в Android? Я имею в виду, что если я выбрал какой-либо элемент из списка, этот элемент должен быть отключен, что означает, что элемент не должен быть снова выбран. Как это сделать?

Предложения пожалуйста

Спасибо за ваше драгоценное время!..

Ответ 1

попробуйте использовать этот код в setOnItemClicklistener()

if(listview.getChildAt(selectedPosition).isEnabled())
{
    listview.getChildAt(selectedPosition).setEnabled(false);
}

Ответ 2

Когда вы передаете список элементов данных в BaseAdapter, добавьте поле в этот класс элементов списка под названием isEnabled и установите его в true/false по мере необходимости, затем переопределите isEnabled метод BaseAdapter вот так:

@Override
public boolean isEnabled(int position) {

    return list.get(position).isEnabled;
}

где list - ваш список объектов элементов данных.

Ответ 3

Попробуйте переопределить BaseAdapter.isEnabled() в вашем адаптере и вызовите этот метод из onItemClick().

Ответ 4

Когда вы нажимаете на элемент, он задает логическое значение. И какой метод использовал бы этот элемент, чтобы проверить, вызвано ли булевское значение, например, false. Затем в вашей части с щелчком используйте BaseAdapter.isEnabled() = false;

Или только с этим булевым они больше не смогут его снова щелкнуть.

Ответ 5

 mlistView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{

 public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3)
{
   arg1.setEnabled(false);
 }
}

Ответ 6

Чтобы отключить элементы списка при создании списка, вы должны подклассом из ArrayAdapter. Вы должны переопределить следующие методы: isEnabled (int position)

class MenuAdapter extends ArrayAdapter<String> {

public boolean isEnabled(int position) {
   // return false if position == positionYouWantToDisable
}

}

Или в классе Activity

public class MainActivity extends Activity {

ListView listview;
ArrayAdapter<String> arrayadapter;

@Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);

 listview = (ListView)findViewById(R.id.listView1);
 button = (Button)findViewById(R.id.button1);

 arrayadapter = new ArrayAdapter<String>(MainActivity.this, 
 android.R.layout.simple_list_item_1, subjects);

 listview.setAdapter(arrayadapter);
 listview.getChildAt(1).setEnabled(false);
 }

}