我遇到了从另一个布局中膨胀按钮的问题。 这是第一个带有ListView的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_item_produto);
btnAddNoCarrinho.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Testing", Toast.LENGTH_SHORT).show();
}
});
这是我的另一个布局,带有TableLayout和我需要膨胀的按钮。
<ImageButton
android:id="@+id/btnAddNoCarrinho"
android:layout_width="50dp"
android:layout_height="30dp"
android:layout_marginStart="310dp"
android:layout_marginTop="3dp"
android:onClick="onClick"
android:background="@android:color/holo_green_dark"
android:clickable="true"
android:focusable="true"
android:src="@drawable/ic_addproduct">
</ImageButton>
错误是:引起:java.lang.NullPointerException:尝试在空对象引用上调用虚方法'void android.widget.ImageButton.setOnClickListener(android.view.View $ OnClickListener)'
有没有办法让这种布局膨胀?提前谢谢。
答案 0 :(得分:1)
图片按钮应该是您活动的视图层次结构的一部分。 Android只能查找属于list_item_produto.xml
或包含在其中的视图。
如果您的图像按钮位于其他文件中,则需要将其包含在list_item_produto.xml中。要包含布局,您必须使用the include tag。
答案 1 :(得分:0)
您需要实例化按钮:
ImageButton btnAddNoCarrinho = (ImageButton) findViewById(R.id.btnAddNoCarrinho);
所以整个代码是:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_item_produto);
ImageButton btnAddNoCarrinho = (ImageButton) findViewById(R.id.btnAddNoCarrinho);
btnAddNoCarrinho.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Testing", Toast.LENGTH_SHORT).show();
}
});
仔细检查您的btnAddNoCarrinho
按钮是否在setContentView