Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在HashMap Android中获取值_Android - Fatal编程技术网

在HashMap Android中获取值

在HashMap Android中获取值,android,Android,我有两项活动。。。 活动1:有一个编辑文本和两个按钮:按钮1和按钮2 活动2:拥有一个autocompletetextview和一个listview 我想知道,当我在edittext中输入字符串并单击按钮1时,我会创建一个HashMap(静态)来保存值(set defaul=“hello word”),并在edittext中键入字符串。。。 单击按钮1时发生的事件: button.setOnClickListener(new OnClickListener() { @Overrid

我有两项活动。。。 活动1:有一个编辑文本和两个按钮:按钮1和按钮2 活动2:拥有一个autocompletetextview和一个listview

我想知道,当我在edittext中输入字符串并单击按钮1时,我会创建一个HashMap(静态)来保存值(set defaul=“hello word”),并在edittext中键入字符串。。。 单击按钮1时发生的事件:

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();
    }
    });     
}
公共类通知\u应用程序扩展活动{
自动完成文本视图actv_通知;
ListView lv_通知;
词典1词典1;
ArrayList str_值;
ArrayList数组_键;
@凌驾
创建时的公共void(Bundle循环)
{
super.onCreate(循环);
setContentView(R.layout.notification);
actv_通知=(AutoCompleteTextView)findViewById(R.id.actv_通知);
lv_通知=(ListView)findViewById(R.id.ListView_通知);
array_key=newarraylist(dictionary1.hashMap.keySet());
迭代器myVeryOwnIterator=字典1.hashMap.keySet().Iterator();
while(myVeryOwnIterator.hasNext())
{
字符串键=(字符串)myVeryOwnIterator.next();
字符串值=(字符串)字典1.hashMap.get(键);
str_value.add(值);
}
ArrayAdapter=新的ArrayAdapter(通知应用程序this、android.R.layout、简单下拉列表、项目行、数组键);
ArrayAdapter adapter1=新的ArrayAdapter(通知应用程序this,android.R.layout.simple\u列表\u项\u 1,数组\u键);
actv_通知。设置适配器(适配器);
lv_通知。设置适配器(适配器1);
lv_notification.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父视图、视图、整型位置、,
长id){
//TODO自动生成的方法存根
Toast.makeText(getBaseContext(),str_value.get(position),Toast.LENGTH_LONG.show();
}
});     
}

但是错误显示:第行的空指针:stru-value.add(value);…您能帮我吗?

我想您只是忘记初始化
stru-value
变量了。请在
while
循环之前放置:

str_value = new ArrayList<String>();
str_value=new ArrayList();
它应该会起作用


另外,我不是在检查代码的逻辑,只是指出为什么会出现
NullPointerException

异常,因为
stru值
null

您需要创建实际对象:

str_value = new ArrayList<String>(); str_value=new ArrayList(); 尝试添加

str_value = new ArrayList<String>();

您可能希望为元素指定与声明中相同的数据类型:
new ArrayList()
而不是简单地
new ArrayList()
@treeh如果您对结果满意,请接受其中一个答案。
str_value.add(value);