在listview适配器上的onclicklistener中的意图

时间:2016-03-19 21:05:19

标签: android listview listadapter getview

我对编程很新,但我有一个列表视图,它显示了数据库的内容。它还有一个可以按下的按钮。我遇到问题的代码在我的适配器类中用于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;


}

1 个答案:

答案 0 :(得分:0)

问题可能在于您的意图,但我不完全确定,如果不知道您的活动名称

Intent intent = new Intent(ListDataAdapter.this, Success.class);

如果ListDataAdapter是您调用该函数的当前活动,那么如果没有那就好了,那么它需要更改。

此外,我不确定此代码的用途是什么

        private void startActivity(Intent intent) {

    }

堆栈跟踪会很有帮助