在Onclick事件下尝试更改活动

时间:2012-03-20 10:38:59

标签: android android-intent android-activity

我正在使用Custom ListView进行给我的作业。我已经使用Base Adapter制定了自定义列表视图。 通过单击我想要启动新活动,我在视图中有一个Button。但是我在运行时遇到错误。请注意,BUTTON不是列表视图的一部分,我的意思是它不重复,它只放置在包含Listview的布局顶部一次。

public class mainActivity2 extends Activity {

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

    ArrayList<ItemInfo> items = GetSearchResults();
    final ListView lv1 = (ListView) findViewById(R.id.mylistview);
   if(lv1==null){

        Log.d("error","ListView is null");
    }

    lv1.setAdapter(new itemBaseAdapter(this, items));
    final Button btnShowCart = (Button) findViewById(R.id.shCart);
    btnShowCart.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
              Intent myIntent = new Intent(v.getContext(), Cart.class);
               startActivity(myIntent);         

        }
    });   


}

private ArrayList<ItemInfo> GetSearchResults() {

    ArrayList<ItemInfo> items=new ArrayList<ItemInfo>();
    items.add(new ItemInfo("pizza",R.drawable.icon,15));
    items.add(new ItemInfo("chicken",R.drawable.icon,10));
    items.add(new ItemInfo("slice",R.drawable.icon,12));
    items.add(new ItemInfo("hoha",R.drawable.icon,20));

    return items;
}

}

StartActivity(myIntent)是我在运行时收到错误的行。 这是代码,如果有人能够解释这个问题,我将不胜感激。

5 个答案:

答案 0 :(得分:4)

您是否已将Cart.class添加到manifest文件中?什么是错误日志?

答案 1 :(得分:1)

而不是新的Intent(v.getContext,Cart.class),请尝试:

Intent myIntent = new Intent(this, Cart.class);

答案 2 :(得分:1)

1)问题可能在v.getContext()方法中。试试这个:

Intent intent = new Intent(mainActivity2.this, Cart.class);
startActivity(intent);

2)也许你没有在Manifest文件中注册'Cart'活动。

答案 3 :(得分:0)

您只需将v.getContext()替换为mainActivity2.this

答案 4 :(得分:0)

首先,检查您的第二个活动是否已添加到Manifest.xml文件中。并且,尝试使用此代码后 -

Intent i = new Intent(mainActivity2.this, Cart.class);
startActivity(i);

也许,这会对你有所帮助。