0

2 つのアクティビティがあります... アクティビティ 1: edittext と 2 つの button:button1 & button2 があります アクティビティ 2: autocompletetextview と listview があります

edittext に文字列を入力して button1 をクリックすると、HashMap(static) を作成して値を保存し (set defaul="hello word")、キーを 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  
}
});

activity2 で:

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 ポイター: 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_valueます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 に答える