gpt4 book ai didi

java - 我可以在 Activity 和类中声明和使用相同的按钮吗?

转载 作者:太空宇宙 更新时间:2023-11-04 12:02:21 24 4
gpt4 key购买 nike

我想在不同的类中使用该按钮进行不同的调用。但是,当我在 Activity 类中声明并尝试调用 Button 单击方法时,它会引发 null 异常。在我的类(class)中,我想这样做:

public class CustomFeedListViewAdapter extends BaseAdapter {


holder.feedUpVoteButton = (Button) view.findViewById(R.id.feedUpVoteButton);

holder.feedUpVoteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

//do stuff

}
});


private class ViewHolder {

Button feedUpVoteButton;

}

在我的主要 Activity 中,我想这样做:

public class Feed extends AppCompatActivity {

Button upVoteButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_feed);

upVoteButton = (Button) findViewById(R.id.feedUpVoteButton);

feedUpVoteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

//do stuff

}
});


}
}

最佳答案

您收到 NullPointerException 是因为您尝试访问 feedUpVoteButton,该按钮存在于 CustomFeedListViewAdapter 使用的 item 布局 中,而不是出现在 Feed Activity 使用的布局中。

每当您创建 CustomFeedListViewAdapter 类型的适配器时,是否希望能够访问 ClickListener?如果是,则执行此操作...

您的 Activity 类(class)

public class Feed extends AppCompatActivity {

CustomFeedListViewAdapter adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_feed);

adapter = new CustomFeedListViewAdapter( new OnClickListener() {

@Override
public void onClick(View v) {
// Handle click here
}

});

}
}

以及您的自定义适配器

public class CustomFeedListViewAdapter extends BaseAdapter {

View.OnClickListener clickListener;

// Constructor
public CustomFeedListViewAdapter(View.OnClickListener listener) {
clickListener = listener;
}

@Override
void getView(){

holder.feedUpVoteButton = (Button) view.findViewById(R.id.feedUpVoteButton);

holder.feedUpVoteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

//do stuff

}
});
}

}

这样您就可以为您创建的适配器的每个实例设置不同的监听器。

关于java - 我可以在 Activity 和类中声明和使用相同的按钮吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40780027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com