在Android应用用户界面中实现“向下钻取”导航

我正在尝试学习如何在Android中做什么,而且我不确定构build接口的最佳方法。

我一直在移植一个iPhone应用程序,该应用程序使用导航控制器和表视图来查看不同的部分:基本上,有人触摸表中的一个单元格,然后钻到另一个表格。 当他们触摸该表格上的一个单元格时,会钻入显示信息的Web视图。

我想为android应用程序做类似的事情,但我不知道如何,或者如果有更好的Android本地方式。 我已经想出了如何使用webview来达到我的目的,但是在表树中向前和向后移动还不清楚。

Solutions Collecting From Web of "在Android应用用户界面中实现“向下钻取”导航"

所以,当你说一个iphone的时候,我想你的意思是当用户触摸一个列表行,并从右侧滑动一个新的视图时,大部分时间在顶部有一个导航栏,以使用户select回去?

Android处理这个的方式就是简单地开始一个新的活动。 所以当你点击一个listItem时,你将拥有你的'Books'ListActivity,你将定义一个新的intent来启动你的'Chapters'ListActivity等等。 iPhone顶部的导航栏并不是Android中的标准UI,因为大多数人都会看到专用的“后退”键作为回到预览屏幕的方式。

如果你以前没有看到过,那么你就是这样开始的:

Intent chaptersIntent = new Intent(this, Chapters.class); this.startActivity(chaptersIntent); 

这篇文章值得快速阅读,因为它完美地解释了活动

http://d.android.com/guide/topics/fundamentals.html

也看看Android版本的TableView – 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); ArrayAdapter<String> booksAdapter = new ArrayAdapter<String>(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作为额外的意图,然后在你的章节活动中,您可以在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文件中:

 <activity android:name=".YourClassName" android:label="@string/activity_name" > </activity> 

希望有所帮助

Android ui创build的主要方式是使用xml。 我不完全确定你说的是什么意思,但是如果你希望它改变视图,就像使一组xml元素可见而另一组不可见。 查看开发者页面以获取更多帮助。

http://developer.android.com/guide/topics/ui/index.html

忘了提这个也是一个很好的初学资源。 http://mobiforge.com/designing/story/understanding-user-interface-android-part-1-layouts

正如已经指出的那样, XML做布局的方式是最好的。

基本上,有人触摸表格中的一个单元格,然后钻到另一个表格。 当他们触摸该表格上的单元格时,会钻入显示信息的Web视图。

从我所理解的这个术语来看,这可能是你需要的

http://developer.android.com/guide/topics/ui/ui-events.html

从官方文档

事件监听器是View类中的一个包含单个callback方法的接口。 当用户与用户界面中的项目交互触发了监听器注册的视图时,这些方法将被Android框架调用。