タグ付けされた質問 「listview」

ListViewは、最新のオペレーティングシステムの大半でUIライブラリによって提供されるグラフィカルな画面コントロールまたはウィジェットであり、アイテムをリスト形式で表示します。

6
ListViewを置き換えるためにRecyclerViewを使用する必要がありますか?
Androidドキュメントによると: RecyclerViewウィジェットは、ListViewのより高度で柔軟なバージョンです。このウィジェットは、限られた数のビューを維持することによって非常に効率的にスクロールできる大きなデータセットを表示するためのコンテナーです。ユーザーのアクションやネットワークイベントに基づいて実行時に要素が変化するデータコレクションがある場合は、RecyclerViewウィジェットを使用します。 ListView効率が問題にならない場合は、実際に上記のすべてを行うことができます。また、を使用RecyclerViewして置き換えるときに多くの問題が見つかりましたListView。 リストアイテムを選択するためのonItemClickListener()はありません- 解決策 リストアイテム間に区切りがない- 解決策 組み込みのオーバーラップセレクターがなく、リストアイテムをクリックしたときに視覚的なフィードバックがない- ソリューション リストヘッダーにaddHeaderViewがない- ソリューション 多分もっと問題... したがって、を使用RecyclerViewして置換ListViewする場合、と同じ効果を得るには、多くの追加のコーディングを行う必要がありますListView。 質問: それは我々が交換することの価値があるListViewとRecyclerViewは全く? そうでない場合は、どちらの場合にRecyclerView代わりListViewに使用した方がよいでしょうか?

2
コンテキストを指定してレイアウトインフレーターを取得する方法は?
ListAdapterのカスタム実装を書いています。 そのコンストラクターでは、コンテキスト、リソースID(つまり、レイアウトファイルを表すR.id.xxx)、リストとマップ(これらにはデータが含まれています)を取り込みます。 ここでの問題は、別のレイアウトXMLファイルにあるViewオブジェクトを取得するためにLayoutInflaterが必要になることです。 コンテキストのみを指定してLayoutInflaterを取得するにはどうすればよいですか? これが可能だと思う理由は、これがArrayAdapterのコンストラクター(コンテキスト、リソース、textViewResourceId、データ配列)に渡されるものと非常に似ているためです。また、ArrayAdapterも、コンテキストのみが指定されたLayoutInflater。 しかし、どうすればできるのでしょうか?

3
baselineAlignedをfalseに設定すると、LinearLayoutのパフォーマンスがどのように向上しますか?
私はxmlでいくつかのUIを構築しているだけで、Lintは警告を表示し、ListViewでのパフォーマンスを向上させるためにandroid:baselineAlignedをfalseに設定すると言っていました。 この警告を追加したLintの変更に関するドキュメントには、 レイアウトのパフォーマンス:android:baselineAligned = "false"を設定してパフォーマンスを向上させる必要があるウェイトを持つLinearLayoutsを見つけます。また、パフォーマンスの問題を引き起こす可能性のあるネストされたウェイトがあるケースも見つけます。 なぜこれがパフォーマンスを改善するのか、特に体重が関係しているときに誰かが説明できますか?


19
Androidの水平リストビュー?
ListView横向きにすることは可能ですか?ギャラリービューを使用してこれを実行しましたが、選択したアイテムが自動的に画面の中央に表示されます。選択したアイテムを、クリックした場所と同じ場所にしたくない。この問題を修正するにはどうすればよいですか?私の考えはListView、水平スクロールで設定することでした。あなたのアイデアを共有しますか?

14
Androidリストビュー行の追加または削除をアニメーション化する方法
iOSには、UITableView行の追加と削除をアニメーション化するための非常に簡単で強力な機能があります。これは、デフォルトのアニメーションを示すYouTubeビデオのクリップです。周囲の行が削除された行にどのように折りたたまれているかに注意してください。このアニメーションは、ユーザーがリストで何が変更されたか、データが変更されたときにリストのどこを見ているかを追跡するのに役立ちます。 私はAndroidで開発してきたので、TableViewの個々の行をアニメーション化する同等の機能を見つけられませんでした。notifyDataSetChanged()アダプタを呼び出すと、ListViewはそのコンテンツを新しい情報ですぐに更新します。データが変更されたときに新しい行が押し込まれるか、またはスライドする簡単なアニメーションを表示したいのですが、これを行うための文書化された方法が見つかりません。LayoutAnimationControllerがこれを機能させるためのキーを保持しているように見えますが、ListViewにLayoutAnimationControllerを設定し(ApiDemoのLayoutAnimation2と同様)、リストが表示された後にアダプターから要素を削除すると、要素はアニメーション化されずにすぐに消えます。 個別のアイテムが削除されたときにアニメーション化するために、次のようなことも試しました。 @Override protected void onListItemClick(ListView l, View v, final int position, long id) { Animation animation = new ScaleAnimation(1, 1, 1, 0); animation.setDuration(100); getListView().getChildAt(position).startAnimation(animation); l.postDelayed(new Runnable() { public void run() { mStringList.remove(position); mAdapter.notifyDataSetChanged(); } }, 100); } ただし、アニメーション化された行を囲む行notifyDataSetChanged()は、呼び出されたときに新しい位置にジャンプするまで位置を移動しません。要素が配置されても、ListViewはレイアウトを更新しないようです。 ListViewの独自の実装/フォークを作成することは私の心を超えましたが、これはそれほど難しいことではないようです。 ありがとう!

25
Android、ListView IllegalStateException:「アダプターのコンテンツは変更されましたが、ListViewは通知を受け取りませんでした」
私がやりたいこと:結果が計算されている間に、ListViewコンテンツを計算し、ListViewを部分的に更新するバックグラウンドスレッドを実行します。 私が回避しなければならないことを知っています:バックグラウンドスレッドからListAdapterの内容をいじることはできないので、onProgressUpdateからAsyncTaskを継承し、結果をパブリッシュ(アダプターにエントリを追加)します。私のアダプターは結果オブジェクトのArrayListを使用し、それらのarraylistのすべての操作が同期されます。 他の人の研究:ここには非常に貴重なデータがあります。また、約500人のユーザーのグループでほぼ毎日クラッシュすることもありlist.setVisibility(GONE)/trackList.setVisibility(VISIBLE)、onProgressUpdateにブロックを追加すると、クラッシュが10分の1に低下しましたが、消えることはありませんでした。(回答で提案されました) 私が時々得たもの:気づいてください、それは本当にまれにしか起こりません(3.5kユーザーの1人に1週間に1回)。しかし、私はこのバグを完全に取り除きたいと思います。ここに部分的なスタックトレースがあります: `java.lang.IllegalStateException:` The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. [in ListView(2131296334, class android.widget.ListView) with Adapter(class com.transportoid.Tracks.TrackListAdapter)] at android.widget.ListView.layoutChildren(ListView.java:1432) at android.widget.AbsListView.onTouchEvent(AbsListView.java:2062) …

4
ArrayViewOutOfBoundsExceptionと、ListViewの複数のビュー用のカスタムAndroidアダプター
リストの各アイテムは異なるビュー(リンク、トグル、またはラジオグループ)を持つことができるため、ListViewのカスタムアダプターを作成しようとしていますが、ListViewを使用するアクティビティを実行しようとすると、エラーが発生し、アプリが停止します。アプリケーションは、Android 1.6プラットフォームを対象としています。 コード: public class MenuListAdapter extends BaseAdapter { private static final String LOG_KEY = MenuListAdapter.class.getSimpleName(); protected List<MenuItem> list; protected Context ctx; protected LayoutInflater inflater; public MenuListAdapter(Context context, List<MenuItem> objects) { this.list = objects; this.ctx = context; this.inflater = (LayoutInflater)this.ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public View getView(int position, View convertView, ViewGroup parent) …

8
Android:複数のクリック可能なボタンを持つListView要素
私はしましたListView、リスト内のすべての要素がTextViewの異なる2つのボタンが含まれているところを。このようなもの: ListView -------------------- [Text] [Button 1][Button 2] -------------------- [Text] [Button 1][Button 2] -------------------- ... (and so on) ... このコードを使用しOnItemClickListenerて、アイテム全体のを作成できます。 listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> list, View view, int position, long id) { Log.i(TAG, "onListItemClick: " + position); } } }); ただし、アイテム全体をクリックできるようにするのではなく、各リスト要素の2つのボタンのみをクリックします。 だから私の質問は、これらの2つのボタンのonClickListenerを次のパラメーターでどのように実装するのですか? int button (要素のどのボタンがクリックされたか) int position (これは、ボタンクリックが発生したリスト内の要素です) …
182 android  listview  button 

14
長いScrollViewレイアウトの一番上までスクロールする方法は?
私のアプリの一部では、ユーザーに名前のリストが表示され、適切と思われるようにグループ化するように求められます。 (注、ListViewコードはそのままAndroid Viewsチュートリアルからコピーされました。私はまだ自分のニーズに合わせてカスタマイズしていません。これを機能させる方法を理解しようとしています。) 基本レイアウトは、RelativeLayoutを含むScrollView(以下のコードでは「groupsScrollView」と呼ばれます)を含むLinearLayoutです。ボタンとテキストをいくつか用意し、その下にあるListViewに名前のリストを表示します。これはすべて、表示されている画面領域よりも高いため、ユーザーは垂直方向にスクロールしてすべてを見ることができます。 これはすべて、ページが読み込まれるときを除いて、すべて美しく機能します。ただし、ページの中央にある常に、ListViewの上部にプリスクロールされます。ユーザーが何をすべきかを指示するために作成したテキストとボタンが表示されません。 画面をつかんで上にスクロールすることもできますが、これは問題なく機能しますが、すでに一番上までスクロールした状態で画面をロードしたいと思います。新しく読み込まれたページの上部を表示するために、ユーザーが上にスクロールする必要はありません。しかし、プログラムで画面の最上部までスクロールしようとしたすべてが失敗しました。 これが私のonCreateメソッドです: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.groups); mainScrollView = (ScrollView)findViewById(R.id.groupsScrollView); //get the Bundle out of the Intent... Bundle extras = getIntent().getExtras(); mNames = extras.getStringArray("mNames"); setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, mNames)); ListView lv = getListView(); lv.setTextFilterEnabled(true); //This is the line I'm having issues with mainScrollView.pageScroll(View.FOCUS_UP); lv.setOnItemClickListener(new …

11
カスタムリストビューアダプターのgetViewメソッドが複数回呼び出され、一貫した順序ではない
カスタムリストアダプターがあります。 class ResultsListAdapter extends ArrayAdapter<RecordItem> { オーバーライドされた「getView」メソッドで、位置を確認し、それがconvertViewかどうかを確認するために印刷を行います。 @Override public View getView(int position, View convertView, ViewGroup parent) { System.out.println("getView " + position + " " + convertView); この出力(リストが最初に表示されたとき、まだユーザー入力はありません) 04-11 16:24:05.860: INFO/System.out(681): getView 0 null 04-11 16:24:29.020: INFO/System.out(681): getView 1 android.widget.RelativeLayout@43d415d8 04-11 16:25:48.070: INFO/System.out(681): getView 2 android.widget.RelativeLayout@43d415d8 04-11 16:25:49.110: INFO/System.out(681): getView 3 …
162 java  android  listview 

3
AndroidでListViewを動的に更新する方法[終了]
ここで何が尋ねられているのかを知るのは難しい。この質問は、あいまいで、あいまいで、不完全で、過度に広い、または修辞的であり、現在の形では合理的に回答することができません。再開できるようにこの質問を明確にするヘルプについては、ヘルプセンターに アクセスしてください。 7年前休業。 Androidでは、ListViewユーザーの入力に基づいてフィルター処理を行うにはどうすればよいTextViewですか。表示されるアイテムは、値に基づいて動的に更新されます。 私はこのようなものを探しています: ------------------------- | Text View | ------------------------- | List item | | List item | | List item | | List item | | | | | | | | | -------------------------

28
AndroidでScrollView内のListViewがスクロールしない
ListView内のスクロールに問題がありScrollViewます。上部にいくつかのEditTextがあり、次に1つのListViewを持つ2つのタブを持つタブホストがあるアクティビティがあります。EditTextビューがフォーカスされると、ソフトキーボードが表示され、ScrollViewがあるので、コンテンツはスクロール可能です。しかし、問題は、リストビュー(タブに1つ)にさらに項目がある場合に発生します。項目が多くても、リストビューをスクロールできません。 以下はレイアウトXMLです。 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="?backgroundImage" android:orientation="vertical"> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="50dip" android:layout_alignParentBottom="true" android:layout_margin="10dip" android:id="@+id/buttons"> <Button android:text="Save" android:layout_margin="2dip" android:textSize="20dip" android:id="@+id/btnSaveorUpdate" android:layout_height="wrap_content" android:layout_width="145dip"></Button> <Button android:text="Cancel" android:layout_margin="2dip" android:textSize="20dip" android:id="@+id/btnCancelorDelete" android:layout_height="wrap_content" android:layout_width="145dip"></Button> </LinearLayout> <ScrollView android:layout_above="@id/buttons" android:layout_width="fill_parent" android:layout_height="fill_parent" android:fillViewport="true" android:layout_margin="10dip"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_margin="10dip"> <TextView android:text="Bill details" android:textColor="?textColorDark" android:layout_alignParentTop="true" android:id="@+id/txtEnterDetails" …

9
Android RecyclerviewとViewholderを使用したListView
私は最近RecyclerView、Android 5.0でリリースされたAndroidに出会いました。これは、ViewHolderパターンが組み込まれたRecyclerView従来のカプセル化ListViewされたもので、毎回作成するのではなく、ビューの再利用を促進しているようです。 を使用する他の利点は何RecyclerViewですか?パフォーマンスの点で両方に同じ効果がある場合、なぜRecyclerView`を好むのでしょうか? 編集する 私は人々が同様の質問をし、答えは決定的なものではないことを発見しました。記録保持のためにここに追加しました。 RecyclerviewとListview ListViewを置き換えるためにRecyclerViewを使用する必要がありますか? RecyclerViewにonItemClickListener()がないのはなぜですか?そしてRecyclerViewはListviewとどのように違うのですか?

7
android.content.res.Resources $ NotFoundException:文字列リソースID#0x0
MySQLデータベースからデータを読み取るAndroidアプリを開発していますが、このエラーに直面しました。私はこのXMLレイアウトを持っています: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/wardNumber" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="3dp" android:text="Ward Number" android:textSize="22dp"/> <TextView android:id="@+id/dateTime" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/wardNumber" android:layout_alignParentRight="true" android:layout_marginRight="3dp" android:text="Date-Time" /> <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/dateTime" android:layout_alignBottom="@+id/dateTime" android:layout_alignLeft="@+id/wardNumber" android:layout_marginLeft="3dp" android:text="Name" /> </RelativeLayout> そして、これは私のJavaファイルです: public ApplicationAdapter(Context context, List<Application> items) { super(context, R.layout.app_custom_list, items); this.items = …
145 java  android  xml  listview 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.