1

以下は私のコードと画像です。 doInBackground() でリモート サーバーから値を取得しrunOnUIThread()たarraylist をリストビューに入力しています。onpostexecute()ただし、要素は特定のアイテムにフォーカスがある場合にのみ表示されます。要素を表示するためにさまざまなことを試みてきましたが、すべて無駄になりました。アイテムを表示する方法を教えてください。注: アクティビティのサブクラスである拡張する必要がある別のクラスがあるため、ListActivity を拡張することはできません。

runOnUiThread(new Runnable() {

     public void run() {
             //Updating parsed json data to Listview

            ListView listView = (ListView)findViewById(R.id.listsubcategory);


    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1, subCategoryList);
                        listView.setAdapter(arrayAdapter); 


                        listView.setOnItemClickListener(new OnItemClickListener() {

                                        @Override
                                        public void onItemClick(AdapterView<?> parent, View view,
                                                        int position, long id) {



                         String selectedSubcategory = subCategoryList.get(position);
                         Toast.makeText(getApplicationContext(), "You clicked on "+selectedSubcategory, Toast.LENGTH_SHORT).show();


                                        }
                                });


                 }
             });

ここに画像の説明を入力

4

1 に答える 1

5

The problem is the styling of the list items. In normal state your items have white background and white text color, therefore you can't see them. When the state changes to focused the colors change. You can easily solve the problem by using your custom list item instead of the system's android.R.layout.simple_list_item_1.

Define a layout for the item, it can be something like this:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@id/text1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/my_item_background"
    android:textColor="@color/my_text_color"
/>

Now, if the item's layout is res/layout/my_list_item.xml, create the adapter this way:

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getContext(),
                                    R.layout.my_list_item, subCategoryList);
于 2012-12-26T14:28:10.233 に答える