我创建了一个能够将数组内容放入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 :(得分:1)
首先我不想粗鲁,但我认为你应该先开始阅读一些关于android的基础知识。
像: Android活动,活动的生命周期 Android中的布局(如何在活动上添加按钮然后响应点击等),android和android小部件中的不同现有布局(例如listView)
当然还有很多东西需要阅读,但这是一个很好的开始方式。
但是,我将为您提供符合您要求的代码,我将尽力解释
首先,您需要创建其他活动,并在该活动的布局内插入listview
<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);
}
}
res 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
&GT;
希望它会有所帮助
答案 1 :(得分:1)
添加完所有项目后,只需添加.listview('refresh')
即可。
$('#viewlist').listview('refresh');
如果您想每次清空列表并重新填充,请在for循环之前调用.empty():
$('#viewlist').empty();
要使用更好的jquery移动编码,请按照以下方式构建代码:
从锚标记中取出onclick并添加一个id:
<a id="viewPageBtn" href="#ViewPage" data-role="button" >RENAME</a>
在您的脚本标记中,处理主页面上的pagecreate,并在其中处理锚点的click事件:
$(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');
});
});