我想在單個活動中有多個列表視圖。但是一次只能顯示一個 列表視圖。列表視圖將被動態加載 。那麼,我應該如何在同一個 時間填寫所有四個列表視圖,並且只顯示一個?Android中單個Activity中的多個Listviews?
回答
我使用的方式基本上與顯示多個列表視圖的方式相同,如 ,建議使用setvisibility。
但現在我想要的是所有四個 列表視圖的位圖圖像。假設我的活動開始,並且通過將數據綁定到它們各自的適配器,將數據加載到全部四個列表視圖中。 現在,當我試圖使用getDrawingCache()
來獲取位圖時,它總是向我返回null。
那麼,你可以讓我知道如何獲取所有四個 列表視圖的位圖?
public class HomeScreenActivity extends Activity
{
private ImageView imgBabble = null;
private ListView listBabble = null;
private ListView listVille = null;
private ListView listPrivateMsgs = null;
private ListView listBookmarks = null;
private List<String> tempBabble = null;
private List<String> tempVille = null;
private List<String> tempPrivateMsgs = null;
private List<String> tempBookmarks = null;
//RelativeLayouts
private RelativeLayout babbleLayout = null;
private RelativeLayout villeLayout = null;
private RelativeLayout privateMsgsLayout = null;
private RelativeLayout bookmarksLayout = null;
//Bitmap
private Bitmap babbleShrunkView = null;
private Bitmap villeShrunkView = null;
private Bitmap privateMsgsShrunkView = null;
private Bitmap bookmarksShrunkView = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.homescreen);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.customtitle);
imgBabble = (ImageView) findViewById(R.id.imgBtnBabble);
Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),R.drawable.babble_top_logo);
BitmapDrawable bmpDrawable = new BitmapDrawable(bitmapOrg);
imgBabble.setBackgroundDrawable(bmpDrawable);
//Initialize the layouts for Babble, Ville, Private Messages and Bookmarks
babbleLayout = (RelativeLayout) findViewById(R.id.babbleLayout);
babbleLayout.setDrawingCacheEnabled(true);
villeLayout = (RelativeLayout) findViewById(R.id.villeLayout);
villeLayout.setDrawingCacheEnabled(true);
privateMsgsLayout = (RelativeLayout) findViewById(R.id.privatemsgsLayout);
privateMsgsLayout.setDrawingCacheEnabled(true);
bookmarksLayout = (RelativeLayout) findViewById(R.id.bookmarksLayout);
bookmarksLayout.setDrawingCacheEnabled(true);
//Babble
tempBabble = new ArrayList<String>();
tempBabble.add("First Babble");
tempBabble.add("Second Babble");
tempBabble.add("Third Babble");
listBabble = (ListView) findViewById(R.id.listBabble);
listBabble.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, tempBabble));
//babbleShrunkView = babbleLayout.getDrawingCache();
//babbleLayout = (RelativeLayout) findViewById(R.id.listLayout);
if(babbleShrunkView == null)
{
System.out.println("Babble View is null");
}
//Ville
tempVille = new ArrayList<String>();
tempVille.add("First Ville");
tempVille.add("Second Ville");
tempVille.add("Third Ville");
listVille = (ListView) findViewById(R.id.listVille);
//listVille.setDrawingCacheEnabled(true);
listVille.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, tempVille));
//villeShrunkView = villeLayout.getDrawingCache();
if(villeShrunkView == null)
{
System.out.println("Ville View is null");
}
//listVille.setVisibility(View.GONE);
//Private Messages
tempPrivateMsgs = new ArrayList<String>();
tempPrivateMsgs.add("First PM");
tempPrivateMsgs.add("Second PM");
tempPrivateMsgs.add("Third PM");
listPrivateMsgs = (ListView) findViewById(R.id.listPrivateMessages);
//listPrivateMsgs.setDrawingCacheEnabled(true);
listPrivateMsgs.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, tempPrivateMsgs));
//privateMsgsShrunkView = privateMsgsLayout.getDrawingCache();
if(privateMsgsShrunkView == null)
{
System.out.println("Private Messages View is null");
}
//listPrivateMsgs.setVisibility(View.GONE);
//Bookmarks
tempBookmarks = new ArrayList<String>();
tempBookmarks.add("First Bookmarks");
tempBookmarks.add("Second Bookmarks");
tempBookmarks.add("Third Bookmarks");
listBookmarks = (ListView) findViewById(R.id.listBookmarks);
//listBookmarks.setDrawingCacheEnabled(true);
listBookmarks.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, tempBookmarks));
//bookmarksShrunkView = bookmarksLayout.getDrawingCache();
if(bookmarksShrunkView == null)
{
System.out.println("Bookmarks Messages View is null");
}
//listBookmarks.setVisibility(View.GONE);
imgBabble.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
System.out.println("Babble Clicked");
babbleShrunkView = babbleLayout.getDrawingCache();
villeShrunkView = villeLayout.getDrawingCache();
privateMsgsShrunkView = privateMsgsLayout.getDrawingCache();
bookmarksShrunkView = bookmarksLayout.getDrawingCache();
BabbleVilleShrinkView.addBitmap(0, resizeBitmap(200, 200, babbleShrunkView));
BabbleVilleShrinkView.addBitmap(1, resizeBitmap(200, 200, villeShrunkView));
BabbleVilleShrinkView.addBitmap(2, resizeBitmap(200, 200, privateMsgsShrunkView));
BabbleVilleShrinkView.addBitmap(3, resizeBitmap(200, 200, bookmarksShrunkView));
Gallery gallery = new Gallery(getApplicationContext());
gallery.setAdapter(new ImageAdapter(getApplicationContext()));
}
});
} // End of class
我能夠通過將所有列表視圖的setVisibility設置爲Visible來解決此問題,然後通過getDrawingCache獲取位圖。 – sunil 2010-06-01 10:39:17
你可以爲你的問題做一件事。您只會看到一個列表視圖的原因可能是因爲一個列表的高度將具有填充父參數值。你必須做的是,使用絕對佈局或者只是爲每個佈局修正高度。還可以使用滾動視圖來放置控件。此外,如果您在此處發佈您的XML佈局,則可以更輕鬆地回答您的查詢以瞭解需要進行更改的位置。
您應該使用FrameLayout
;它允許對其子視圖進行z排序,這意味着您可以將您的ListView
堆疊在一起。然後,您可以使用View#setVisibility(
)方法從代碼中切換每個ListView的可見性。 您將爲每個這些ListView創建合適的適配器,並且無論何時要繪製ListView,框架都會調用所需適配器的getView()
方法。
我已經使用了大部分顯示多個列表視圖的相同方式,就像您使用setvisibility參數所建議的那樣。但現在我想要的是所有四個列表視圖的位圖圖像。假設我的活動開始,並且通過將數據綁定到它們各自的適配器,將數據加載到所有四個列表視圖中。現在,當我試圖使用getDrawingCache()獲取位圖時,它總是向我返回null。 那麼,你能告訴我如何獲取所有四個列表視圖的位圖嗎? – sunil 2010-04-05 12:05:43
而不是使用所有的代碼在列表視圖之間翻轉爲什麼不把所有的ListView放在ViewFlipper中?它是最簡單的方法,需要幾乎1行的代碼! :)
-Moto
- 1. ScrollView中的多個ListViews
- 2. 用Android的多個ListViews滾動
- 3. 在Android中的單親佈局中顯示兩個表的ListViews?
- 4. Android - 通過單個類填充多個ListViews
- 5. Android多個Listviews對單個活動沒有顯示項目
- 6. 如何在單個模板中綁定多個ListViews?
- 7. Android多個listviews和setSelectionFromTop()錯誤?
- 8. Android - 許多OutOfMemoryError異常僅在單個Activity中使用MapView
- 9. 在android中執行多個listviews的最佳方式是什麼?
- 10. 如何在Android Studio中使用CustomAdapter創建多個佈局ListViews
- 11. 濃咖啡:多個ListViews
- 12. 多個ListViews和onClick問題通過找出哪個ListViews點擊
- 13. Android:可能在同一個任務中啓動一個Activity的多個實例?
- 14. ANDROID - 在第二個Activity中使用ArrayList
- 15. android:在兩個listactivities中有兩個listviews沒有工作
- 16. Android的兩個ListViews間距和佈局
- 17. 如何在多個Activity中使用ArrayList?
- 18. 帶有多個項目佈局的ListViews
- 19. Android 3.0及以上版本中的兩個ListViews在一個活動中
- 20. 線性佈局中的兩個ListViews
- 21. 並行同步兩個ListViews Android
- 22. 通過SearchView過濾多個ListViews
- 23. 我應該使用多個ListViews嗎?
- 24. 多個過濾器字段到ListViews
- 25. Android - 工具欄中的多個菜單
- 26. Android:父級Activity中的靜態TextView和操作它的兩個子Activity類
- 27. Android Edittext listviews?
- 28. 更改第二個Activity中的邏輯取決於第一個Activity中的Spinner
- 29. 如何在ScrollView中添加2個ListViews
- 30. 如何將第二個Activity中的RecyclerView項目傳遞給Android中的上一個Activity?
僅顯示一個手段,你要隱藏的樹的其餘部分,或者您希望只顯示一個在時間和具體行動要顯示另一個。 無論你想做什麼,都可以做一件事, 你可以實現代碼,它將加載所有3-4列表視圖中的數據,意味着創建適配器並與列表視圖綁定。然後隱藏3.的其餘部分,並且可以根據需要逐個顯示它們。 – 2010-04-05 05:19:51