2010-06-02 34 views
17

Tôi đang cố gắng tìm hiểu cách thực hiện nội dung trong Android và tôi không chắc chắn cách tốt nhất để tạo giao diện.Triển khai điều hướng "Drilldown" trong giao diện người dùng ứng dụng Android

Tôi đã làm việc để chuyển một ứng dụng iPhone, sử dụng bộ điều khiển điều hướng và chế độ xem bảng để xem các phần khác nhau: về cơ bản, ai đó chạm vào một ô trong bảng. khi họ chạm vào một ô trên bảng đó, nó sẽ đi sâu vào một chế độ xem web hiển thị thông tin.

Tôi muốn làm điều gì đó tương tự cho ứng dụng android, nhưng tôi không biết làm thế nào, hoặc nếu có một cách tốt hơn bản địa cho Android. Tôi đã tìm ra cách sử dụng webview cho mục đích của mình, nhưng tiến lên phía trước và ngược lại trong cây bảng là không rõ ràng.

Trả lời

26

Vì vậy, trên iPhone khi bạn nói xuống, tôi đoán bạn có nghĩa là khi người dùng chạm vào hàng danh sách và nó sẽ hiển thị chế độ xem mới từ bên phải, phần lớn thời gian có thanh điều hướng đầu để cung cấp cho người dùng tùy chọn quay lại?

Cách Android xử lý việc này chỉ đơn giản bằng cách bắt đầu một hoạt động mới. Vì vậy, bạn sẽ có ListActivity 'Sách' của bạn khi một listItem được nhấp, bạn sẽ xác định một ý định mới mà bắt đầu của bạn 'Chương' ListActivity và như vậy. Thanh điều hướng ở phía trên cùng của iPhone không phải là giao diện người dùng chuẩn trong Android vì hầu hết mọi người đều thấy phím 'quay lại' chuyên dụng như một cách để quay lại màn hình xem trước.

Đây là cách bạn bắt đầu một dự định trong trường hợp bạn chưa nhìn thấy nó trước đây:

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

Bài viết này có giá trị một cách nhanh chóng đọc qua vì nó giải thích hoạt động một cách hoàn hảo

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

Ngoài ra, hãy xem phiên bản Android của TableView - ListView:

http://d.android.com/reference/android/widget/ListView.html

và ListActivity:

http://d.android.com/reference/android/app/ListActivity.html


EDIT :: Mẫu Mã tôi sẽ làm điều đó một cái gì đó như thế này

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

} 

Vì vậy, bạn đi qua id của cuốn sách như một thêm vào Intent sau đó trong Chương Hoạt động của bạn, bạn nhận được thêm trong phương thức 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"); 
    } 
} 

Cuối cùng đảm bảo tất cả các hoạt động mới được thêm vào tập tin AndroidManifest.xml của bạn:

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

Hy vọng rằng sẽ giúp

+0

Tôi nghĩ rằng đây có thể là những gì tôi đang tìm kiếm. Tôi không hoàn toàn chắc chắn tôi hiểu nó, nhưng có vẻ đầy hứa hẹn. Tôi có onclick làm việc cho các hàng trong bảng và tôi đã chuyển đổi chế độ xem bằng cách sử dụng Activity.setContentView, nhưng không chắc cách đặt lại dễ dàng (nút quay lại thoát khỏi chương trình, tôi nghĩ vì dự án của tôi chỉ có một hoạt động). Có vẻ như từ ví dụ của bạn rằng tôi sẽ phải tạo một lớp khác cho mỗi phần (Books.class, Chapters.class, v.v.) Tuy nhiên, tôi nhận được điều này: Ý tưởng của hàm tạo (new View.OnClickListener() { }, Lớp ) là không xác định – AndyD273

+0

Intent informationalIntent = new Intent (this, Informational.class); startActivity (informationalIntent); – AndyD273

+0

Đã thêm một số mã mẫu ở trên, hy vọng rằng rõ ràng hơn là – m6tt

2

Cách chính mà Android ui được tạo là sử dụng xml. Tôi không chắc chắn những gì bạn có nghĩa là khi bạn nói khoan xuống nhưng nếu bạn muốn nó thay đổi quan điểm của nó đơn giản như làm cho một tập hợp các yếu tố xml có thể nhìn thấy và một bộ không. Xem trang dành cho nhà phát triển để được trợ giúp thêm.

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

Quên đề cập đến đây cũng là nguồn tài nguyên mới bắt đầu rất tốt. http://mobiforge.com/designing/story/understanding-user-interface-android-part-1-layouts

+0

khoan xuống là một thuật ngữ Apple cho đi đến một mức độ một bộ điều khiển chuyển hướng (Sách -> Chapter-> Verse: chạm vào cuốn sách nào bạn muốn và danh sách các chương sẽ hiển thị. chạm vào chương bạn muốn và bạn đi sâu hơn. Để chuyển từ câu này sang chương khác, bạn chỉ cần nhấp vào nút quay lại trên bộ điều khiển điều hướng và nó nhớ bạn đang ở đâu trước.) Tôi sẽ phải quen với cách thực hiện XML. trong xCode bạn phải có một bộ điều khiển xem khác nhau cho mỗi phần, và việc hiển thị/ẩn nội dung là khó khăn hơn. – AndyD273

1

Như đã chỉ ra XML way về bố cục được ưa thích nhất.

về cơ bản, ai đó chạm vào ô trong số bảng khác. khi họ chạm vào một ô trên bảng đó, nó sẽ đi sâu vào một chế độ xem web hiển thị thông tin.

Từ những gì tôi hiểu từ các cuộc tập trận dài xuống, điều này có thể wat bạn cần

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

Từ tài liệu chính thức

Một event listener là một giao diện trong View lớp có chứa một phương thức gọi lại . Các phương thức này sẽ là được gọi bởi khung công tác Android khi Chế độ xem mà người nghe có được đăng ký được kích hoạt bởi người dùng tương tác với mục trong giao diện người dùng.

+0

Vì vậy, theo cách XML, cách để thực hiện nó là nắm bắt sự kiện cảm ứng khi người dùng chọn một cuốn sách, tải lại bảng với các chương và khi người dùng chọn chương ẩn bảng và hiển thị webview để hiển thị văn bản , tất cả trong một bố cục? – AndyD273

+0

Bạn có thể sử dụng lại bố cục bảng cho sách, để hiển thị các chương. WebView nên sử dụng bố cục khác để dễ đọc. – primpap

Các vấn đề liên quan