下記の画像でカレンダーのようなビューを作成したいが、どこから始めるべきかわからない。私はこれに最善のアプローチを見つけたいと思っています。私はGridViewについて考えましたが、うまくいきませんでした。誰にも何か提案はありますか?カレンダービューを設計する
答えて
AndroidはSDKにカレンダービューを提供していません。それは開発者の視点からは大きな損失です。 1か月の日を表示し、ユーザがその日を選択するためのオプションを提供することが有益である状況はたくさんあります。
解決策の1つは、サードパーティのコンポーネントを使用することです。もう一つは、これらのリンクをチェックし、あなた自身の
で1を実装するために、あなたがに水平方向のLinearLayoutを取ることができ
http://w2davids.wordpress.com/android-simple-calendar/
この
http://caughtinthemobileweb.wordpress.com/2011/06/20/how-to-implement-calendarview-in-android/
2番目のサンプルコードは私が欲しかったものです。ありがとう – Nishant
線形レイアウトのヘッダとグリッドレイアウトを使用。 GridLayoutを使用してクリックコマンドを実装し、派手なアダプタ作業を使用して、曜日/月を管理することができます。
編集:ここでは
はあなたができるとどのようにGridViewのはあなたのために働くだろう何の大まかな概念です。
class CalendarView extends LinearLayout {
public CalendarView (Context context) {
super(context);
setOrientation(LinearLayout.VERTICAL);
mHeader = new LinearLayout(context);
mHeader.setOrientation(LinearLayout.HORIZONTAL);
addView(mHeader);
// Add in your days, shouldn't be too bad, they are just text views.
mCalendar = new GridView(context);
mCalendar.setColumns(mHeader.getNumViews()); // You could hard code this.
mCalendar.setAdapterView(new CalendarAdapter());
addView(mCalendar);
}
// ... Other contructors
private class CalendarAdapter extends BaseAdapter {
// Override methods, this should be too bad.
@Override public view getView (int pos, View convert, ViewGroup parent) {
ListView lv = (ListView)convert;
if (convert == null)
lv = new ListView(parent.getContext());
// Here you will need to figure out some way of
// determining the date.
CalendarDate app = (CalendarDate)lv.getTag();
// Determine if this view is already set to the correct date,
// if not rest the list view
app.sort();
lv.setAdapter(new ArrayAdapter(parent.getContext(), R.layout.datelistview, app.getDates());
}
}
public static class CalendarDate {
List<Appointment> mDates = new ArrayList<Appointment>();
public void addAppointment(Appointment app) {
mDate.add(app);
}
// ... and the rest of your methods (getters and state returns)
}
public Appointment implements Compareable<Appointment> {
private Date mDate;
private String mName; // Appointment name
private String mDesc; // Appointment description
@Override public int compareTo(Appointment to) {
return mDate.compareTo(mDate);
}
}
}
お返事ありがとうございました。私はカレンダーの日付にいくつかのイベントをマークすることができるカレンダーを探していました。 Avi Kumar Mankuが提供するリンクから、私が探していたソリューションを提供するサンプルコードを入手しました。あなたは非常に支持的でした。 – Nishant
あなたに役立つだろうです同じ重さのすべてのテキストビューを含む垂直LinearLayout。
android:layout_weight="1"
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="5dp">
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="sun" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="mon" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="tue" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="wed" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="thu" />
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="fri" />
<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="sat" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="sun" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="mon" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="tue" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="wed" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="thu" />
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="fri" />
<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="sat" />
</LinearLayout>
</LinearLayout>
Agarwalの答えについての私のコメントを参照してください。 – AedonEtLIRA
- 1. カレンダービューを作成するサマリーレポート
- 2. 読むカレンダービュー
- 3. Swiftでカレンダービューを作成するには
- 4. カレンダービューで結合チェックビュー
- 5. pythonのイベントのカレンダービューを作るtkinter
- 6. カレンダービューのコンポーネントはありますか?
- 7. Domino Designer - カレンダービューで単一カテゴリを表示
- 8. iNotesカレンダービューにある文書を更新する
- 9. OO設計とデータベース設計
- 10. RESTfulな設計、などの操作を設計する方法
- 11. 設定構造を設計する
- 12. デスクトップアプリケーションを設計する
- 13. WP7アプリケーションを設計する
- 14. ストレステストフレームワークを設計する
- 15. C++ライブラリを設計する
- 16. ブレッドクラムを設計するCSS
- 17. SQLテーブルを設計する
- 18. ヘルプマネージャークラスを設計するヘルプ
- 19. パーミッションシステムを設計するベストプラクティス
- 20. Javaクライアントを設計する
- 21. オーディオアーキテクチャを設計する
- 22. Cocoaアプリケーションを設計する
- 23. sqliteサーバクライアントプログラムを設計する
- 24. SQLクエリービルダーを設計する
- 25. クラス図を設計する
- 26. ネットワーキングアプリケーションを設計する
- 27. GUIフレームワークを設計する
- 28. C++イベントハンドラクラスを設計する
- 29. コメントテーブルを設計する
- 30. アップロードサービスを設計する。 OOP
自分のカレンダーを動作させるためにできることのコンセプトで答えを更新しました。 – AedonEtLIRA