我是初学Android开发者,这是我的第一个项目。我必须将ViewData.java上的ListView中的选定数据显示到EntryTO.java上的ListView。首先,我得到一个错误nullPointerException。我尝试检测if函数的问题在哪里。并出现该错误。 “运算符!=未定义参数类型long,null”
当我尝试从listview ViewData.java
获取数据时,这是代码ListView lv = (ListView) findViewById(android.R.id.list);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(final AdapterView<?> adapter, View v, int pos, final long id) {
final Dialog dialog = new Dialog(ViewData.this);
dialog.setContentView(R.layout.dialog_view);
dialog.setTitle("Masukkan Qty");
dialog.show();
final product b = (product) getListAdapter().getItem(pos);
edtqty = (EditText) dialog.findViewById(R.id.edtqty);
buttonok = (Button) dialog.findViewById(R.id.buttonok);
buttonok.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
switchToEdit(b.getId());
Toast.makeText(ViewData.this, "Ambil product\n"+ b.getId() +"\n"+ b.getname() +"\n"+ b.getbrand()
+ edtqty.getText().toString(), Toast.LENGTH_LONG).show();
dialog.dismiss();
};
});
}
});
public void switchToEdit(long id){
product b = dataSource.getproduct(id);
Intent i = new Intent(this, EntryTO.class);
Bundle bun = new Bundle();
bun.putLong("id", b.getId());
bun.putString("brand", b.getbrand());
bun.putString("qty",edtqty.getText().toString());
i.putExtras(bun);
finale();
startActivity(i);
}
这是当我尝试将ListView ViewData.java中的选定数据显示到EntryTO.java上的另一个列表视图时的代码
Bundle bun = null;
if(bun.getLong("id")!=null && bun.getString("brand")!=null && bun.getString("qty")!=null)
{ bun = EntryTO.this.getIntent().getExtras();
id = bun.getLong("id");
brand = bun.getString("brand");
qty = bun.getString("qty");
String[]array ={brand,qty};
adapter = new ArrayAdapter<String>(EntryTO.this,
R.layout.item_list,R.id.edtnama, array);
setListAdapter(adapter);
}
请帮帮我。
答案 0 :(得分:5)
您可以使用Long参数。像这样:
if( bun.getLong("id") != 0L)
答案 1 :(得分:0)
bun.getLong("id")!=null
毫无意义。你不能有“空长”。
像bun.getLong("id")!=0L
之类的东西可能更有意义(假设0是“默认”值...)您还在重复所有getLong()
和getString()
次呼叫。更有效地调用它们一次并存储返回的值以供以后使用。