0

我有两个活动... 活动 1:有一个 edittext 和两个按钮:button1 和 button2 活动 2:有一个 autocompletetextview 和一个 listview

我想当我输入字符串到edittext并单击button1时,我创建一个HashMap(静态)来保存值(set defaul =“hello word”)并将key作为edittext中的字符串...单击button1时的事件:

button.setOnClickListener(new OnClickListener() {       
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
  hashMap.put(edittext.getText().toString(),"hello word");//I declared hashMap  
}
});

在活动 2 中:

public class Notification_App extends Activity {

    AutoCompleteTextView actv_notification;
    ListView lv_notification;
    Dictionary1 dictionary1;
    ArrayList<String> str_value;
    ArrayList<String> array_key;

@Override
public void onCreate(Bundle circle)
{
    super.onCreate(circle);
    setContentView(R.layout.notification);

    actv_notification=(AutoCompleteTextView)findViewById(R.id.actv_notification);
    lv_notification=(ListView)findViewById(R.id.listview_notification);

    array_key=new ArrayList<String>(dictionary1.hashMap.keySet());
    Iterator myVeryOwnIterator = dictionary1.hashMap.keySet().iterator();
    while(myVeryOwnIterator.hasNext())
    {
        String key=(String)myVeryOwnIterator.next();
        String value=(String)dictionary1.hashMap.get(key);
        str_value.add(value);
    }

    ArrayAdapter<String> adapter=new ArrayAdapter<String>(Notification_App.this, android.R.layout.simple_dropdown_item_1line,array_key);
    ArrayAdapter<String> adapter1=new ArrayAdapter<String>(Notification_App.this, android.R.layout.simple_list_item_1,array_key);


    actv_notification.setAdapter(adapter);
    lv_notification.setAdapter(adapter1);
    lv_notification.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
    long id) {
    // TODO Auto-generated method stub
    Toast.makeText(getBaseContext(), str_value.get(position), Toast.LENGTH_LONG).show();
    }
    });     
}

但错误显示:null poiter at line: str_value.add(value); ...你能帮助我吗..

4

3 回答 3

2

我想你只是忘了初始化str_value变量。放在你的while循环之前:

str_value = new ArrayList<String>();

它应该可以解决问题。

PS我没有检查你的代码逻辑,只是指出你为什么得到NullPointerException.

于 2012-05-21T14:02:32.497 回答
0

你得到一个例外,因为str_valueis null

您需要创建实际对象:

    str_value = new ArrayList<String>();
于 2012-05-21T14:03:41.777 回答
0

尝试添加

str_value = new ArrayList<String>();

第一次之前

str_value.add(value);
于 2012-05-21T14:07:46.633 回答