0

我正在尝试创建一个请求响应活动并获取 itemSelected 以供下一个活动使用,该活动将它们存储到用户好友列表中。但是当单击“接受”按钮时,itemSelected 没有返回任何内容。(它应该在 toast 对话框中显示 itemSelected)任何人都知道它发生了什么?另外,我想问一下为什么listView中的项目位于不准确的位置?对于第二个项目,它似乎比通常的更高。如何正确调整它?

下图是 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();
                }               
            });

        }
    });
}}      

视图.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 回答