【问题标题】:null pointer exception on set on click listener in list view on android在android的列表视图中单击侦听器上设置的空指针异常
【发布时间】:2011-06-21 05:50:48
【问题描述】:

我的应用程序中有一个带有图像按钮的列表视图,我为每个图像按钮编写操作。 但触摸图像按钮时出现空指针异常。我不知道原因。请帮帮我。

我的代码:

public class InventoryListActivity extends ListActivity {

private InventoryAdapter adapter;
private InventoryObserver inventoryObserver;
ListView listview;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.inventory_list);

    if(!IAPManager.isBillingSupported())
        showDialog(1);

   listview = (ListView)findViewById(R.id.listExample); 

   adapter = new InventoryAdapter(this);  // here i call InventoryAdapter class for list view the items.
   setListAdapter(adapter);

   inventoryObserver = new InventoryObserver();
   IAPManager.shared().getInventory().addObserver(inventoryObserver);

   listview.setOnItemClickListener(new OnItemClickListener(){
       public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
             switch(view.getId()){
                 case R.id.imageButton1:
                     Log.e("Buy","buy position"+position);
                     break;
                 case R.id.imageButton2:
                     Log.e("play","play position"+position);
                     break;
                 case R.id.imageButton3:
                     Log.e("detail","detail  position"+position);
                     break;  
              }   
       }     
   });


}

@Override
public void onListItemClick(ListView l, View v, int pos, long id) {
    Log.e("position",""+pos);
}

}

在 InventoryAdapter 类中:

    public class InventoryAdapter extends BaseAdapter implements Observer{

public InventoryAdapter(Context ctx) {     
    context = ctx;
    inventory = IAPManager.shared().getInventory();
    inventory.addObserver(this);
    inventory.load();
}
.......
@Override
public int getCount() {
    return inventory.size(Inventory.FilterType.ALL);
}

@Override
public Object getItem(int position) {
    return inventory.getProducts(Inventory.FilterType.ALL).get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    Product product = (Product) getItem(position);

    View view;

    if(convertView == null) {
        LayoutInflater inflater = (LayoutInflater)
        context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        view = inflater.inflate(R.layout.inventory_list_item, null);
    }

    else {
        view = convertView;
    }
    ..........
    return view;
}

}

在inventory_list.xml 中:

 <ListView android:id="@+id/listExample"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"/>

在 Inventry_list_item.xml 中:

        ...... 
       <ImageButton android:background="@drawable/play_btn"  android:focusable="false" android:onClick="onItemClick"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:id="@+id/imageButton2" android:layout_weight="0.5" />
        ......

原木猫:

    ERROR/AndroidRuntime(2038): Caused by: java.lang.NullPointerException
     ERROR/AndroidRuntime(2038):     at com.google.iap.BillingService.handleCommand(Unknown Source)
    ERROR/AndroidRuntime(2038):     at com.google.iap.BillingService.onStart(Unknown Source)
    ERROR/AndroidRuntime(2038):     at android.app.Service.onStartCommand(Service.java:306)
    ERROR/AndroidRuntime(2038):     at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2873)

【问题讨论】:

  • 我不使用堆栈跟踪。不知道。我包括日志猫。请看一下,对不起
  • 请看我的问题。我试过了,但我没有理由

标签: android android-layout android-listview


【解决方案1】:

您已将不同的 xml 放在 InventoryListActivity 类中,而不是 Inventry_list_item.xml 数据中,因为我需要在此类中扩展此视图组件,然后在您可以在您的类中使用这些视图之后。

【讨论】:

    【解决方案2】:

    可能发生的情况是系统找不到您指向的视图。

    确保您调用 R.id.foobar 的唯一时间是在您的 onActivityStarted 覆盖中。这样可以确保您不会收到此错误。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多