2014-02-10 101 views
0

我已經創建了一個能夠將數組內容放入listview的函數,以下是我迄今的進度。按鈕第一次按期間使用數組填充listview內容

<div id="MainPage" data-role="page" > 

    <div data-role="content"> 

     <a href="#ViewPage" data-role="button" onClick="displayArray()">RENAME</a> 

    </div> 

</div> 

<div id="ViewPage" data-role="page" > 

    <div data-role="content"> 
     <ul id="viewlist" data-role="listview" data-filter="true" data-filter-placeholder="Sample Contents" data-inset="true"> 
       <!-- array contents goes here --> 
     </ul> 
    </div> 

</div> 

<script> 

    var sampleContent = new Array(); 

    displayArray() 
    { 
     for(var scan=0; scan<sampleContent.length; detect++) 
     { 
      $('#viewlist').append('<li><a href="#">' + sampleContent[scan] + '</a></li>'); 
     }  
    } 

</script> 

我的代碼工作,但是當我按下它的第二次,列表視圖變得混亂。

任何幫助或建議將被提前感謝接受謝謝。


編輯,我想通了如何做到這一點,但我在第二次按下按鈕時遇到問題。

+0

填充您的ListView與'ArrayAdapter'並設置'sampleContent'作爲列表適配器以便它知道什麼補與listview。奇怪的android代碼btw –

回答

1

我不想粗魯,但我認爲你應該先閱讀一些關於android的基礎知識。

像: Android的活動,活動 佈局Android的生命週期(如何添加上的活動按鈕,然後迴應一個點擊等),在Android和Android小工具不同的現有佈局(如列表視圖爲例)

當然還有很多需要閱讀的內容,但它是一個很好的開始。

但是我會爲您提供的代碼,會做什麼你所要求的,我會盡量解釋,就像我可以

,首先你需要創建其他的活動,該活動的裏面的佈置插入一個列表視圖

<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <ListView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/listView" 
     android:layout_gravity="center_horizontal" /> 
</LinearLayout> 

那麼其他活動的Java代碼看起來像這樣

public class MainActivity2 extends Activity { 
    //create the array adapter that will input your array and convert it into a list of view 

    ArrayAdapter<String> arrayAdapter; 

    String[] list; 

    ListView listView; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main2); 

     listView = (ListView)findViewById(R.id.listView); 
     // get the array from ressource and insert them on an array 
     list = getResources().getStringArray(R.array.listArray); 

     // then create the arrayadpater with input your array of string if you dont get      //anything here just read android documentation about arrayAdapter 
     arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,list); 

     //then set the adapter to your listView 
     listView.setAdapter(arrayAdapter); 

    } 


} 

資源xml文件

<resources> 
    <string-array name="listArray"> 
     <item>Apple</item> 
     <item>Banana</item> 
     <item>Cherry</item> 
     <item>Cranberry</item> 
     <item>Grape</item> 
     <item>Grape</item> 
    </string-array> 
</resources 

>

希望這將有助於

+0

我得到了一個x圖標,包含這兩行代碼「findViewById(R.id.listView);」和「getStringArray(R。array.listArray);「說不能解決或不是字段,我應該設置什麼樣的快速修復程序? –

+0

首先告訴我你在使用什麼IDE,只是爲了清楚我們正在談論android正確嗎?如果你喜歡我可以發佈整個源代碼 – murielK

+0

我認爲我正在使用jquery-mobile。我剛開始學習這個,因爲我從來沒有碰過java代碼或xml,我應該用jquery-mobile取代android.I混淆了我很抱歉 –

1

只需添加.listview('refresh')添加完所有項目後。

$('#viewlist').listview('refresh'); 

如果你想每次清空列表並填充它,調用.empty()之前在for循環:

$('#viewlist').empty(); 

爲了更好地使用jQuery Mobile的編碼結構的代碼是這樣的:

採取的onclick出錨標記,並添加一個id:

<a id="viewPageBtn" href="#ViewPage" data-role="button" >RENAME</a> 

在腳本TA克,處理主頁上pagecreate,並在其處理錨的單擊事件:

$(document).on("pagecreate", "#MainPage", function(){ 
    var sampleContent = ["item 1", "item 2", "item 3"]; 
    $("#viewPageBtn").on("click", function(){ 
     $('#viewlist').empty(); 
     for(var scan=0; scan < sampleContent.length; scan++) 
     { 
      $('#viewlist').append('<li><a href="#">' + sampleContent[scan] + '</a></li>').listview('refresh'); 
     } 
     $('#viewlist').listview('refresh'); 
    }); 
});