对于参数类型long,null,运算符!=未定义

时间:2014-01-16 03:47:20

标签: java android listview

我是初学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);
       }

请帮帮我。

2 个答案:

答案 0 :(得分:5)

您可以使用Long参数。像这样:

if( bun.getLong("id") != 0L)

答案 1 :(得分:0)

bun.getLong("id")!=null毫无意义。你不能有“空长”。

bun.getLong("id")!=0L之类的东西可能更有意义(假设0是“默认”值...)您还在重复所有getLong()getString()次呼叫。更有效地调用它们一次并存储返回的值以供以后使用。