2012-04-10 61 views
0

Android專家! 我希望你能幫助我。我有一個包含兩個ListView的活動佈局。邏輯是當某人在菜單ListView中選擇一個項目時,第二個ListView中充滿了一些可點擊的項目。我已經使用嵌套setOnItemClickListener。頂級偵聽器綁定到菜單ListView項目。填充後,嵌套的偵聽器綁定到第二個ListView。 當我沒有做出嵌套那一切都好。菜單ListView顯示當前選定的項目。如果我進行嵌套。除了一件事,所有的工作都很好我的菜單ListView丟失了當前的項目選擇標記。怎麼了?我需要在菜單ListView中進行當前選擇。代碼如下。ListView在使用嵌套setOnItemClickListener時丟失了當前選擇

menu.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> arg0, 
    android.view.View arg1, int arg2, long arg3) { 
    mainList = (ListView) findViewById(R.id.listView2); 
    aaMainList = new cArrayAdapter(this, R.layout.mainlistitem, ALfiles); 
    mainList.setAdapter(aaMainList); 
    mainList.setOnItemClickListener(new AdapterView.OnItemClickListener(){   
     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
     lounchFileInDefaultVewer("file:/"+ ALfiles.get(arg2).getAbsolutePath()); 
     Log.d("ssapp", items[arg2].getAbsolutePath()); 
     } 
    }); 
    } 
}); 

回答

0

如果你想在其他目錄是在「菜單」列表中選擇元素,之後纔可見,只是在默認情況下,能見度GONE設置它,做這一切的第一OnItemClickListener外:

final ListView mainList = (ListView) findViewById(R.id.listView2); 
    aaMainList = new cArrayAdapter(this, R.layout.mainlistitem, ALfiles); 
    mainList.setAdapter(aaMainList); 
    mainList.setOnItemClickListener(new AdapterView.OnItemClickListener(){   
     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
     lounchFileInDefaultVewer("file:/"+ ALfiles.get(arg2).getAbsolutePath()); 
     Log.d("ssapp", items[arg2].getAbsolutePath()); 
     } 
    }); 

,只設置vsibible第一OnItemClickListener

menu.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> arg0, 
    android.view.View arg1, int arg2, long arg3) { 
    mainList.setVisibility(View.VISIBLE); 
    } 
}); 

你也可以改變上述listene適配器內容河

+0

謝謝你的建議。但這不是我的情況。第二個列表「mainList」工作正常。但是當它被填充時,第一個列表「菜單」會丟失當前項目上的選擇標記。我試着按照你的建議設置「菜單」。它不適合我。我有強烈的懷疑,一致的唯一一個ListView可能會顯示其當前選擇。 – SergeyS 2012-05-21 05:26:18

0

難道這是您的第一個列表不再位於第一個列表中嗎?你有沒有看過使用支持庫並將兩個列表實現爲兩個片段。通過這種方式,兩個列表上的操作相互獨立,但您仍然可以從第一個列表中設置值,您的第一個列表也將保留所選項目。

http://developer.android.com/sdk/compatibility-library.html

+0

好的。我會嘗試這種方法。我只是爲Android 4.0開發一款應用程序。只是爲了利益,你可以建議我爲Android <3.0做出一些決定嗎? – SergeyS 2012-05-22 08:47:44