2015-02-24 39 views
0

該應用程序需要一個可滾動的和絃列表(即「Em7」,「C#」等),我不確定讓他們進入ScrollView的最佳方式。我可以很容易地在代碼中生成一個列表(大約有2500個項目...),所以它歸結爲我是否需要「大文本」小部件的所有開銷,或者我可以在列表中單擊可點擊的文本?此ScrollView位於具有一些文本字段和另外兩個具有和絃修飾符列表的ScrollView的Activity上。Android滾動視圖:如何將大約2500個吉他和絃(即「Em7」)加載到滾動視圖

這是我到目前爲止有:

<TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="@string/new_song_name" 
     android:id="@+id/textView3" 

     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true"/> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/editText" 
     android:layout_alignTop="@+id/textView3" 
     android:layout_toRightOf="@+id/textView3" 
     android:layout_toEndOf="@+id/textView3" 
     android:layout_marginLeft="29dp" 
     android:layout_marginStart="29dp" 
     android:width="400dp" 
     style="@style/Base.Widget.AppCompat.EditText" 
     android:textStyle="bold"/> 
    <ScrollView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="100dp" 
     android:layout_height="400dp"> 
     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:orientation="vertical"> 
     </LinearLayout> 
     </ScrollView> 

<android.support.v7widget.GridLayout 
    android:layout_width="match_parent" 
    android:layout_height="400dp" 
    android:layout_marginTop="63dp" 
    android:layout_below="@+id/editText" 
    android:layout_toLeftOf="@+id/editText" 
    android:layout_toStartOf="@+id/editText" 
    android:id="@+id/view"> 

    </android.support.v7widget.GridLayout> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     ***android:text="C"*** 
     //the line above is representative of the list items. 
     android:id="@+id/textView4" 
     android:layout_alignTop="@+id/view" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginTop="40dp"/> 


</RelativeLayout> 
+1

爲什麼不'ListView'? – Simas 2015-02-24 14:52:30

+0

它聽起來像你想要一個'ListView'。你可以爲列表中的每個項目設置一個'onClickListener',它將執行一個特定的操作(通常根據它在列表中的位置或支持ListView的數據集)[查看ListView指南](http:// developer.android.com/guide/topics/ui/layout/listview.html) – ekchang 2015-02-24 15:02:12

+0

我認爲這種情況下'GridView'會更好,但這只是我的看法。 – Leonardo 2015-02-24 15:13:47

回答

0

哥們,你爲什麼不使用ListView和ListAdapter? 並從數據庫加載ChordList; 所以它會滾動。

ArrayList<String> chords = new ArrayList<>(); 
chords = getFromDb; 
ListView chordList = (ListView) findViewById(R.id.list_item); 
chordList.setAdapter(new ArrayAdapter<String>(getApplicationContext(), 
android.R.layout.simple_list_item_1, chords));` 

`

+0

我將嘗試使用GridView來啓動。然而,當我有一個現有的Activity(目前只有一個EditText和一個'歌曲'標題的TextView)以及如何將新代碼摺疊到NewSong.java中的現有代碼時,我總是感到困惑。我試圖將Gridview代碼添加到現有的OnCreate(Bundle ...)代碼中。這使我無法理解如何在正確的上下文中正確使用代碼。再次感謝! – user1359407 2015-02-24 19:21:53