Java 是否从我的listview中添加/删除项目?

Java 是否从我的listview中添加/删除项目?,java,android,string,listview,Java,Android,String,Listview,下面的代码列出了字符串[]练习中的项目。您还可以通过搜索对其进行过滤 问题是,我有两个微调器需要过滤列表中的项目。所以我的问题是,以后如何从列表中添加/删除字符串 public class CalExercises extends Activity { private ListView myListView; ArrayAdapter<String> myAdapter; EditText inputSearch; Ar

下面的代码列出了字符串[]练习中的项目。您还可以通过搜索对其进行过滤

问题是,我有两个微调器需要过滤列表中的项目。所以我的问题是,以后如何从列表中添加/删除字符串

public class CalExercises extends Activity {
        private ListView myListView;
        ArrayAdapter<String> myAdapter;
        EditText inputSearch;
        ArrayList<HashMap<String, String>> productList;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_calexercise);
            String exercises[] = { "Ola", "dolla" };
            myListView = (ListView) findViewById(R.id.exp_list);
            inputSearch = (EditText) findViewById(R.id.itemSearch);
            myAdapter = new ArrayAdapter<String>(this, R.layout.parent_layout, R.id.parent_txt, exercises);
            myListView.setAdapter(myAdapter);
            inputSearch.addTextChangedListener(new TextWatcher() {
                @Override
                public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
                   CalExercises.this.myAdapter.getFilter().filter(cs);
                }
                @Override
                public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                                              int arg3) {
                }
                @Override
                public void afterTextChanged(Editable arg0) {
                }
            });

            final Spinner spindif = (Spinner) findViewById((R.id.filterDif));
            final Spinner spinmus = (Spinner) findViewById((R.id.filterMus));
            final String diffilter = String.valueOf(spindif.getSelectedItem());
            final String musfilter = String.valueOf(spinmus.getSelectedItem());

            if (diffilter.equals("All Exercises")) {

            }


        }

    }
公共类CalExercises扩展活动{
私有列表视图myListView;
阵列适配器;
编辑文本输入搜索;
ArrayList产品列表;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u calexercise);
弦乐练习[]={“Ola”,“dolla”};
myListView=(ListView)findViewById(R.id.exp\u列表);
inputSearch=(EditText)findViewById(R.id.itemSearch);
myAdapter=new ArrayAdapter(这个,R.layout.parent\u布局,R.id.parent\u txt,练习);
myListView.setAdapter(myAdapter);
inputSearch.addTextChangedListener(新的TextWatcher(){
@凌驾
public void onTextChanged(字符序列cs、int arg1、int arg2、int arg3){
CalExercises.this.myAdapter.getFilter().filter(cs);
}
@凌驾
更改前的公共void(字符序列arg0、int arg1、int arg2、,
int arg3){
}
@凌驾
public void PostTextChanged(可编辑arg0){
}
});
最终微调器spindif=(微调器)findViewById((R.id.filterDif));
最终微调器微调器=(微调器)findViewById((R.id.filterMus));
final String diffilter=String.valueOf(spindif.getSelectedItem());
最终字符串musfilter=String.valueOf(spinmus.getSelectedItem());
if(diffilter.equals(“所有练习”)){
}
}
}

如果需要创建仅包含与字符串匹配的项目的数组,请创建新数组并将其分配给练习:

exercises = filterArray(exercises, filter);  
myAdapter.notifyDataSetChanged();

String[] filterArray(String[] arr, String filter) {
  ArrayList<String> newArray = new ArrayList<String>();
  for (int i=0;i<arr.length()<i++) {
    if (arr[i].contains(filter) {
      newArray.add(arr[i]);
    }
  }
  return newArray.toArray();
}
练习=过滤器阵列(练习,过滤器);
myAdapter.notifyDataSetChanged();
字符串[]过滤器阵列(字符串[]阵列,字符串过滤器){
ArrayList newArray=新ArrayList();

对于(int i=0;问题是,productList是未使用的。它来自教程,他没有引用它。它实际上使用了“练习[]”作为列表,这让我感到困惑。有什么想法吗?我希望如此,但我已经坚持了几个小时,所以我不会抱太大希望了!谢谢!你可能需要使用另一个来安排(…)方法谢谢。你能在arraylist中添加和删除字符串吗?因为这看起来像是中文的!这有什么用?看起来不像我想象的那样
exercises = addToArray(exercises, newString);
myAdapter.notifyDataSetChanged();

String[] addToArray(String[] arr, String newString) {
  ArrayList<String> newArray = new ArrayList<String>(arr);
  arr.add(newString);
  return newArray.toArray();
}
exercises = removeFromArray(exercises, newString);
myAdapter.notifyDataSetChanged();

String[] removeFromArray(String[] arr, String removeMe) {
  ArrayList<String> newArray = new ArrayList<String>(arr);
  for (String item: newArray) {
    if (item.equals(removeMe) {
      newArray.remove(item);
    }
  }
  return newArray.toArray();
}