2013-11-10 82 views
0

我意識到標題很混亂,但我不確定如何總結我的問題。Android/Intent相當於HTTP #anchor

所以在HTML中,你可以有一個網頁

reallyLongWebpage.html

而當你在瀏覽器中打開它,它會打開它在文檔的頂部。但是相反,如果您導航到

reallyLongWebpage.html#section46

然後它會打開網頁,但向下滾動到徘徊無論<a name="section46"></a>在頁面上。

我想用我的android應用做類似的事情。

我有一個有相當數量內容的活動(數量不是很多,但仍然有點太多,無法每次向下滾動以找到所需內容)。我知道如何使用意圖和發送參數,但是在活動本身,我該如何獲取該值(例如「滾動到錨點7」)並滾動到適當的位置?

+0

您的活動是否包含列表視圖?它是你希望滾動的ListView嗎? – EJK

+0

它不包含列表視圖。它主要是TextViews和幾個圖像在這裏和那裏。所有標題(我想成爲錨點)都是獨立的TextView。 – Entity

+0

織補。我只是在爲列表視圖撰寫答案的過程中:-( – EJK

回答

1

如果你想滾動活動一個ListView,然後

一)如果啓動該活動的目的,發送數據集項的指標作爲一個額外的

int indexToSelect = 17; 
intent.putExtra("IndexToSelect", indexToSelect); 

b )在活動本身,從意圖

int indexToSelect = intent.getIntExtra("IndexToSelect"); 

ç得到指數)最後,滾動的ListView到該位置:

listView.setSelectionFromTop(indexToSelect, 0); 
1

答案真的取決於你滾動的是什麼,但是如果你使用的是ScrollView,那麼你可以使用.scrollTo(int, int)see here)。

要從Intent中檢索滾動座標或搜索文本,它應該放在數據Bundle之內,然後才能發送。

如果您不使用預先記錄的座標並搜索某些特定文本,您只需檢查每個TextView的內容並進行比較。使用setTaggetTag指定哪些TextView被視爲可搜索的標頭可能會有幫助。