我对编程很新,但我有一个列表视图,它显示了数据库的内容。它还有一个可以按下的按钮。我遇到问题的代码在我的适配器类中用于listview。理想情况下,我想将有关按钮按下的行的信息传递给新活动。到目前为止,如果我取出startActivity,我可以更改按钮的文本,所以我知道按钮工作,但是一旦我尝试添加一个startActivity,它就会崩溃。我尝试打开的活动就是这样,我知道我可以让按钮工作(因此我称之为成功)所以我可以将其实现到另一个应用程序中。有人可以帮助我,为什么新活动不会打开,以及如何纠正它,提前谢谢。
@Override
public View getView(int position,View convertView,ViewGroup parent)
{
View row = convertView;
final LayoutHandler layoutHandler;
if(row == null)
{
LayoutInflater layoutInflater = (LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = layoutInflater.inflate(R.layout.row_layout,parent,false);
layoutHandler = new LayoutHandler();
layoutHandler.NAME = (TextView)row.findViewById(R.id.tvViewRow);
layoutHandler.BtntoClick = (Button)row.findViewById(R.id.BtnToClick);
row.setTag(layoutHandler);
}
else
{
layoutHandler = (LayoutHandler) row.getTag();
}
DataProvider dataProvider = (DataProvider)this.getItem(position);
layoutHandler.NAME.setText(dataProvider.getName());
//这是点击按钮后的方法 final Button btn = layoutHandler.BtntoClick;
btn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
btn.setText("clicked");
Log.e("intent builder", "onClick method started");
Intent intent = new Intent(ListDataAdapter.this, Success.class);
startActivity(intent);
}
private void startActivity(Intent intent) {
}
});
return row;
}
答案 0 :(得分:0)
问题可能在于您的意图,但我不完全确定,如果不知道您的活动名称
Intent intent = new Intent(ListDataAdapter.this, Success.class);
如果ListDataAdapter是您调用该函数的当前活动,那么如果没有那就好了,那么它需要更改。
此外,我不确定此代码的用途是什么
private void startActivity(Intent intent) {
}
堆栈跟踪会很有帮助