0

ListViewうまく機能するリストがあります。このように設定されています:

<style name="Theme.Transparent" parent="android:Theme"> 
    <item name="android:windowIsTranslucent">true </item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">true</item>
</style>

これは私のxmlファイルです:

<?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="wrap_content"
   android:padding="0dp" 
   android:background="@drawable/button_pressed"
   android:clickable="false"
   android:id="@+id/ListViewLayout" >

    <ImageView
        android:id="@+id/logo"
        android:layout_width="100dp"
        android:layout_height="50dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="5dp" />

    <TextView
        android:id="@+id/label"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="30dp" >
    </TextView>
</LinearLayout> 

ListViewまた、クリックを作成して処理するコードのブロックもあります。

public class RandomList extends ListActivity {
    static final String[] randomList = new String[] {"Name 1", "Name 2", "Name 3", "Logo"};

    @Override
    public void onCreate (Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setListAdapter(new RandomArrayAdapter(this, randomList));
    }

    protected void onListItemClick(ListView l, View v, int position, long id){
        //Get selected items
        Log.v("ListView l:", l.toString());
        Log.v("View v:", v.toString());
        Log.v("Position:", ""+position);
        Log.v("ID: ", ""+id);
        String selectedValue = (String) getListAdapter().getItem(position);
        Bundle bundle = new Bundle();
        bundle.putString("Name", selectedValue);
        Intent mIntent = new Intent();
        mIntent.putExtras(bundle);
        setResult(RESULT_OK, mIntent);
        finish();
    }
}

さて、ArrayAdapter他では、何が起こるかというと、私はアイテムのリストを取得します。アイテムが5つしかないため、設定したスタイルにより、画面の大部分が淡色表示になり(元のActivity)、リストのみが中央に配置されます。Activity問題は、誰かがリストボックスの外側の灰色の領域をクリックした場合に終了したいということです。私は私の人生のためにどのように理解することはできません。

を実装しようとしましたOnTouchListenerが、実装できず、を囲むコンテナに対してListViewそれを呼び出す方法がわかりません。私はAndroidにかなり慣れていないので、私のためにそれをばかにしてください。LinearLayoutTextView

4

2 に答える 2

0

私は箱に関して尋ねられた私の2番目の質問に対する解決策を見つけました。でTheme.Transparent、私はただに向けなければなりませんでしWindowIsFloatingfalse。それをWnafeeの優れた答えと組み合わせると、それは魅力のように機能しました。

于 2012-07-20T22:28:34.853 に答える
0

このxmlレイアウトを作成し、「list_layout.xml」と呼びます。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
     android:id="@+id/my_background"
     android:layout_width="match_parent"
     android:layout_height="match_parent">

 <ListView android:id="@android:id/list"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"/>
 </LinearLayout>

次にonCreate()、を次のように変更します。

public void onCreate (Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.list_layout);

    View background = findViewById(R.id.my_background);
    background.setOnClickListener(new View.OnClickListener() {
         public void onClick(View v) {
             RamdomList.this.finish();
         }
     });

    setListAdapter(new RandomArrayAdapter(this, randomList));

}

私はそれを実行せずに頭のてっぺんからこれを書いたので、あなたはいくつかのことを戦うかもしれませんが、あなたは概念を理解します。

于 2012-07-15T02:15:09.150 に答える