And*_*273 17 user-interface android
我正在尝试学习如何在Android中执行操作,而且我不确定构建界面的最佳方法.
我一直在努力移植一个iPhone应用程序,它使用导航控制器和表格视图来查看不同的部分:基本上,有人触摸表格中的一个单元格,向下钻到另一个表格.当他们触摸该桌子上的一个单元格时,它会向下钻取到显示该信息的webview.
我想为Android应用程序做类似的事情,但我不知道如何,或者是否有更好的Android原生方式.我已经想出如何将webview用于我的目的,但在表树中前进和后退尚不清楚.
m6t*_*6tt 26
所以当你说下钻时,我猜你的意思是当用户触摸列表行并从右侧滑动新视图时,大多数时候它在顶部有一个导航栏给用户可以选择回去吗?
android处理这个问题的方法就是启动一个新活动.因此,当单击listItem时,您将拥有"Books"ListActivity,您将定义一个新的意图来启动"Chapters"ListActivity等等.iPhone顶部的导航栏不是Android中的标准UI,因为大多数人看到专用的"后退"键作为返回预览屏幕的一种方式.
这是你如何开始一个意图,以防你以前没见过:
Intent chaptersIntent = new Intent(this, Chapters.class);
this.startActivity(chaptersIntent);
Run Code Online (Sandbox Code Playgroud)
本文值得快速阅读,因为它完美地解释了活动
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<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);
}
}
Run Code Online (Sandbox Code Playgroud)
因此,您将本书的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");
}
}
Run Code Online (Sandbox Code Playgroud)
最后确保所有新活动都添加到AndroidManifest.xml文件中:
<activity android:name=".YourClassName"
android:label="@string/activity_name"
>
</activity>
Run Code Online (Sandbox Code Playgroud)
希望有所帮助
归档时间: |
|
查看次数: |
12189 次 |
最近记录: |