2

String[]:
String[] mFileList;の 2 つの配列があります。
文字列[] mFileList_description;
これは、ファイルの説明のリストを含む警告ダイアログを表示する私の関数です:

private void Load_file_list(){
Dialog dialog = null;
AlertDialog.Builder alertdg = new AlertDialog.Builder(this); 
alertdg.setTitle("FILES");
alertdg.setTitle("Select file");

final ArrayAdapter<String> adapter;
final EditText filtr = new EditText(this); 
final ListView lista = new ListView(this); 

 adapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.product_name, mFileList_description);
 lista.setAdapter(adapter);
/////////
 filtr.addTextChangedListener(new TextWatcher() {
    @Override
    public void afterTextChanged(Editable arg0) {
    }
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count,
            int after) {
    }
    @Override
    public void onTextChanged(CharSequence cs, int start, int before,
            int count) {
        // sort
        adapter.getFilter().filter(cs);
        adapter.notifyDataSetChanged();
    } 
 });
 lista.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        Log.d("TEST","File id:"+arg2+" File name:"+mFileList[arg2]);
    }
   });
 /////////

LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
layout.addView(filtr); 
layout.addView(lista); 
alertdg.setView(layout); 
alertdg.show(); 
}

説明のリストを並べ替えると、setOnItemClickListener メソッドがユーザーがクリックした説明の ID を返すため、問題がありますが、配列 mFileList の ID ではありません (この ID は別のファイルからのものである場合もあります)

。2次元配列でこれを行うのは疲れましたが、別の方法の方が良いと思います...

ありがとう、そして私の英語でごめんなさい... ;)

4

1 に答える 1

0

まず、ほとんどの場合、ここで悪いパターンに従っています

最適化されたソリューション:

2 つの配列を保持する代わりに、1ArrayつまたはArrayListユーザー定義のオブジェクト タイプを保持することをお勧めします。

例えば:

/**
Here `MyFileClass` is a clsss with attributes whatever you want to store for 
Files and also contains getter/setter methods **/

MyFileClass[] objFiles = new MyFileClass[4];
or
ArrayList<MyFileClass> listFileObjs = new ArrayList<MyFileClass>();

ArrayListしかし、 に比べて管理が簡単なので、 一緒に行くことをお勧めしますArray

これで、シングルArrayList<MyFileClass>を持っているので、必要な操作を実行することで簡単に管理できます。

于 2013-04-10T03:18:47.500 に答える