2010-09-01 52 views
0

我的代码有问题。在应用程序中,当我“添加项目”时,它不显示任何内容,如果我在Android应用程序的某个地方点击,则“项目”有时会出现。 有人能帮助我吗?如何使用按钮单击将项目添加到数组列表?

package com.example.proov; 

import java.util.ArrayList; 

import com.example.proov.R; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.ListView; 

public class proovin extends Activity { 
    private ListView LView; 


    ArrayList <String>ar = new ArrayList<String>(); 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     LView = (ListView) findViewById(R.id.ListView01); 
     //  Set option as Multiple Choice. So that user can able to select more the one option 
       LView.setAdapter(new ArrayAdapter<String>(this, 
         android.R.layout.simple_list_item_multiple_choice, ar)); 
       LView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 

      Button b = (Button) findViewById(R.id.add_item); 
      final EditText d = (EditText) findViewById(R.id.title); 
      b.setOnClickListener(new View.OnClickListener() { 

        @Override 
        public void onClick(View v) { 
         ar.add(d.getText().toString()); 

        } 
       }); 
    } 
} 

回答

1

该项目可能会被添加到ArrayList,但这是不同于获取添加到ListView。您需要告诉ListView您更新了数据模型,以便它知道要查看。请参阅ArrayAdapter.notifyDatasetChanged()

2

使用下面的代码而不是您的代码。

public class proovin extends Activity { 

    private ListView LView; 
    ArrayList <String>ar = new ArrayList<String>(); 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     LView = (ListView) findViewById(R.id.ListView01); 
     // Set option as Multiple Choice. So that user can able to select more 
     // the one option 
     final ArrayAdapter<String> adpt=new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_multiple_choice, ar); 
     LView.setAdapter(adpt); 
     LView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 

     Button b = (Button) findViewById(R.id.add_item); 
     final EditText d = (EditText) findViewById(R.id.title); 
     b.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       ar.add(d.getText().toString()); 
       adpt.setNotifyOnChange(true); 
       LView.setAdapter(adpt); 
      } 
     }); 
    } 
} 
0

你可以使用这个外挂字符串列表上点击一个按钮

final String a[]={"hello","world"}; 
final ArrayAdapter<String> at=new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1,a); 
final ListView sp=(ListView)findViewById(R.id.listView1); 
sp.setAdapter(at); 
final EditText et=(EditText)findViewById(R.id.editText1); 
Button b=(Button)findViewById(R.id.button1); 
b.setOnClickListener(new OnClickListener() 
    { 

     @Override 
     public void onClick(View v) 
     { 
      // TODO Auto-generated method stub 
      int k=sp.getCount(); 
      String a1[]=new String[k+1]; 
      for(int i=0;i<k;i++) 
       a1[i]=sp.getItemAtPosition(i).toString(); 
      a1[k]=et.getText().toString(); 
      ArrayAdapter<String> ats=new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1,a1); 
      sp.setAdapter(ats); 
     } 
    }); 
相关问题