Я разрабатываю одно приложение, в котором у меня есть один список. В этой строке каждая строка имеет один текстовый просмотр и один файл автозаполнения. теперь то, что я хочу, - сделать этот файл autocompletetextview редактируемым. Если один раз, когда мой список заполнен некоторыми данными, я хочу отредактировать некоторые из autocompletetexviews, а затем отправить обновленные данные на сервер. Есть ли какое-либо решение для этого? Я потратил 2 дня на это, и мне нужно это очень срочно.Как создать редактируемый AutoCompleteTextview в Listview в android
вот мой метод getview() моего customAdapter. Я могу успешно заполнить данные в списке. И я добавил «addOnTextChangedListener» в autocomletetextview. но когда я отфильтровывал данные, он не может установить auotocompletetext, то есть autocomtextview.settext (filtersdata) не выполняет. Я получаю отфильтрованный текст в onTextChanged(). В моем коде я написал это, но я не знаю, на каком месте это поставить.
public View getView(final int position, View convertView, ViewGroup parent)
{
LayoutInflater inflater= (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if(convertView==null)
{
convertView=inflater.inflate(R.layout.new_applwizard_extuser_listrow,null);
TextView appl_Name=(TextView)convertView.findViewById(R.id.ext_app_name);
auto_brand_Name=(AutoCompleteTextView)convertView.findViewById(R.id.ext_auto_brand_txt);
auto_brand_Name.setFocusable(true);
auto_brand_Name.setFocusableInTouchMode(true);
ToggleButton toggle_status=(ToggleButton)convertView.findViewById(R.id.ext_toggle_cover);
LinearLayout ll_save_btn=(LinearLayout)convertView.findViewById(R.id.ll_ext_btn_appsubmit);
try
{
appl_Name.setText(alApplianceDetails.get(position).getAppliance_Name().toString());
if(alApplianceDetails.get(position).getStatus()==true)
{
toggle_status.setChecked(true);
}
else
{
toggle_status.setChecked(false);
}
if(alApplianceDetails.get(position).getBrand_Id()!=0)
{
String brand_name=null;
brand_name=dbHandler.getBrand_id(String.valueOf(alApplianceDetails.get(position).getBrand_Id()));
Log.d("brand name", brand_name);
auto_brand_Name.setText(brand_name);
}
else
{
Log.d("brand name", "no brand");
}
try
{
auto_brand_Name.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent,View view, int position, long id)
{
String selection = parent.getItemAtPosition(position).toString();
//auto_brand_Name.setText(selection);
Log.d("adpter value..",""+parent.getAdapter().getItem(position).toString());
try
{
AutoCompleteTextView brnd=(AutoCompleteTextView)view;
//Log.d("text value.....",brnd.getText().toString());
brnd.setText(filteredVal);
}
catch(Exception e)
{
e.printStackTrace();
}
}
});
}
catch(Exception e)
{
}
auto_brand_Name.addTextChangedListener(new TextWatcher()
{
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after)
{
if(alApplianceDetails.get(position).getAppliance_TypeId()!=0)
{
String app_name=null;
app_name=dbHandler.getApp_id(String.valueOf(alApplianceDetails.get(position).getAppliance_TypeId()));
appliance=app_name;
Log.d("app_name",app_name);
}
else
{
Log.d("app_name", "No App");
}
alBrands.clear();
getBrand();
for(int i=0;i<alBrand_Common_Objects.size();i++)
{
alBrands.add(alBrand_Common_Objects.get(i).getcommon_name());
}
Log.d("brands_list", alBrands.toString());
aaBrand =new ArrayAdapter<String>(activity.getApplicationContext(), R.layout.spinner_item, alBrands);
auto_brand_Name.setThreshold(1);
auto_brand_Name.setAdapter(aaBrand);
auto_brand_Name.postInvalidate();
auto_brand_Name.invalidate();
auto_brand_Name.showDropDown();
aaBrand.setNotifyOnChange(true);
//aaBrand.notifyDataSetChanged();
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
Log.d("filtered value...", s.toString());
filteredVal=s.toString();
//auto_brand_Name.setText(s.toString());
}
@Override
public void afterTextChanged(Editable s)
{
try
{
//auto_brand_Name.setText(filteredVal);
}
catch(Exception e)
{
e.printStackTrace();
}
}
});
}
catch(Exception e)
{
e.printStackTrace();
}
}
return convertView;
}
Нам очень нужна дополнительная информация о том, что вы не можете получить. Опубликовать ошибки и примеры кода. Единственное, что я могу сказать из вашего текста, - это то, что EditText можно редактировать по умолчанию, а TextView - нет. – Treeline
Да, мы можем сделать. когда мы нажимаем на представление списка в некоторой позиции, тогда мы можем перейти к новой активности там, где мы можем отредактировать то, что хотим, и, наконец, мы поместили кнопку отправки, чтобы отправить данные и сохранить их на сервере. Если вы получаете какую-либо ошибку, то отправляйте log-cat, тип ошибки которого вы получаете. – Hanuman
Я отредактировал мой вопрос. Теперь смотри этот вопрос – User123