我正在尝试学习如何在Android中执行操作,而且我不确定构建界面的最佳方法.
我一直在努力移植一个iPhone应用程序,它使用导航控制器和表格视图来查看不同的部分:基本上,有人触摸表格中的一个单元格,向下钻到另一个表格.当他们触摸该桌子上的一个单元格时,它会向下钻取到显示该信息的webview.
我想为Android应用程序做类似的事情,但我不知道如何,或者是否有更好的Android原生方式.我已经想出如何将webview用于我的目的,但在表树中前进和后退尚不清楚.
所以当你说下钻时,我猜你的意思是当用户触摸列表行并从右侧滑动新视图时,大多数时候它在顶部有一个导航栏给用户可以选择回去吗?
android处理这个问题的方法就是启动一个新活动.因此,当单击listItem时,您将拥有"Books"ListActivity,您将定义一个新的意图来启动"Chapters"ListActivity等等.iPhone顶部的导航栏不是Android中的标准UI,因为大多数人看到专用的"后退"键作为返回预览屏幕的一种方式.
这是你如何开始一个意图,以防你以前没见过:
Intent chaptersIntent = new Intent(this, Chapters.class); this.startActivity(chaptersIntent);
本文值得快速阅读,因为它完美地解释了活动
http://d.android.com/guide/topics/fundamentals.html
另外看看TableView的Android版本 - ListView:
http://d.android.com/reference/android/widget/ListView.html
和ListActivity:
http://d.android.com/reference/android/app/ListActivity.html
编辑::示例代码我会这样做
public class Books extends ListActivity { private String[] mBooks = new String[]{ "Book1", "Book2", "Book3", "Book4" }; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ArrayAdapterbooksAdapter = new ArrayAdapter (this, android.R.layout.simple_list_item_1, android.R.id.text1, mBooks); this.setListAdapter(booksAdapter); } @Override protected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); Intent mViewChaptersIntent = new Intent(this, Chapters.class); mViewChaptersIntent.putExtra("BookName", mBooks[position]); startActivity(mViewChaptersIntent); } }
因此,您将本书的ID作为额外内容传递给Intent,然后在您的Chapters Activity中,您将在onCreate方法中获得额外的内容:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Bundle extras = getIntent().getExtras(); if(extras != null) { String bookId = extras.getString("BookName"); } }
最后确保所有新活动都添加到AndroidManifest.xml文件中:
希望有所帮助