当前位置:  开发笔记 > 前端 > 正文

在Android App UI中实现"向下钻取"导航

如何解决《在AndroidAppUI中实现"向下钻取"导航》经验,为你挑选了1个好方法。

我正在尝试学习如何在Android中执行操作,而且我不确定构建界面的最佳方法.

我一直在努力移植一个iPhone应用程序,它使用导航控制器和表格视图来查看不同的部分:基本上,有人触摸表格中的一个单元格,向下钻到另一个表格.当他们触摸该桌子上的一个单元格时,它会向下钻取到显示该信息的webview.

我想为Android应用程序做类似的事情,但我不知道如何,或者是否有更好的Android原生方式.我已经想出如何将webview用于我的目的,但在表树中前进和后退尚不清楚.



1> m6tt..:

所以当你说下钻时,我猜你的意思是当用户触摸列表行并从右侧滑动新视图时,大多数时候它在顶部有一个导航栏给用户可以选择回去吗?

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);

    ArrayAdapter booksAdapter = 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文件中:



希望有所帮助

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有