0

Request Responses アクティビティを作成し、次のアクティビティで使用するために itemSelected を取得して、それらをユーザーのフレンドリストに保存しようとしています。しかし、「Accept」ボタンがクリックされると、itemSelected は何も返しません (トースト ダイアログに itemSelected が表示されるはずです)。さらに、listView の項目が正確でない場所にある理由をお聞きしたいです。2つ目のアイテムは、いつもよりアッパーに見えます。適切に調整する方法は?

以下の図は、NotificationView.java のレイアウトです。

そのときの結果は

NotificationView.java

public class NotificationView extends ListActivity{

String[] people;
ListView lv;
Button btn1,btn2;

public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.view);  
    NotificationManager mnotis =(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
    mnotis.cancel(getIntent().getExtras().getInt("notificationID"));
    String i = getIntent().getExtras().getString("name");
    people = i.split("[,]");
    Log.d("how",i);

    lv= (ListView) findViewById(android.R.id.list);
    btn1 = (Button)findViewById(R.id.acceptbtn);
    btn2 = (Button)findViewById(R.id.closebtn);
    ArrayAdapter<String> list = new ArrayAdapter<String>(NotificationView.this,R.layout.friendlist_item, R.id.friend_name,people);
    lv.setAdapter(list); 

    btn1.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(View v)
        {
            lv = getListView();
            int i = lv.getCount();
            Log.d("count",String.valueOf(i));
            runOnUiThread(new Runnable(){
                public void run(){
                    String itemSelected = "Selected items: \n";
                    for(int i=0;i<lv.getCount();i++){
                        if(lv.isItemChecked(i)){
                            itemSelected += lv.getItemAtPosition(i) + "\n";
                        }
                    }
                    Toast.makeText(NotificationView.this,itemSelected,Toast.LENGTH_SHORT).show();
                }               
            });

        }
    });
}}      

view.xml

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:background="#ffffff"
  >

<ListView android:id="@android:id/list" 
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content" 
  android:layout_weight="1">
</ListView>

<FrameLayout android:id="@+id/FrameLayout01" 
  android:layout_width="fill_parent" 
  android:layout_height="wrap_content">


  <LinearLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
      android:layout_height="fill_parent"
      android:background="#ffffff"
      android:orientation="horizontal" >


      <Button
          android:id="@+id/acceptbtn"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_gravity="center_horizontal"
          android:layout_weight="0.46"
          android:text="Accept" />



      <Button
          android:id="@+id/closebtn"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_weight="0.49"
          android:text="Close" />

  </LinearLayout>

</FrameLayout>

フレンドリスト_アイテム.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="fill_parent"
android:orientation="vertical" >

<CheckBox android:id="@+id/friend_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight = "88dip"
android:textSize="20dip"
android:textStyle="bold"/>  

</LinearLayout>
4

1 に答える 1

1

チェックボックスは、呼び出しているメソッドとは関係ありません。複数選択項目のあるリストビューについては、次のガイドに従ってください: http://dj-android.blogspot.com/2012/04/milti-selection-listview-android-with. html

于 2012-11-21T17:52:13.743 に答える