Под событием Onclick пытается изменить активность - PullRequest
0 голосов
/ 20 марта 2012

Я работаю над Custom ListView для данного мне назначения. Я разработал собственный список с помощью базового адаптера. У меня есть кнопка в виде, нажав на которую я хочу начать новую деятельность. Но я получаю ошибку во время выполнения. Обратите внимание, что КНОПКА не является частью списка, я имею в виду, что он не повторяется, он размещается только один раз в верхней части макета с включенным 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 ]

4 голосов
/ 20 марта 2012

Вы добавили Cart.class в манифест файл? Что такое журнал ошибок?

1 голос
/ 20 марта 2012

1) Возможно, проблема заключается в методе v.getContext (). Попробуйте это:

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

2) Возможно, вы не зарегистрировали действие «Корзина» в файле манифеста.

1 голос
/ 20 марта 2012

Вместо нового намерения (v.getContext, Cart.class), попробуйте:

Intent myIntent = new Intent(this, Cart.class);
0 голосов
/ 20 марта 2012

Сначала проверьте, добавлено ли ваше второе действие в ваш файл Manifest.xml.И, после попытки с этим кодом -

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

Может быть, это будет полезно для вас.

0 голосов
/ 20 марта 2012

Вы можете просто заменить v.getContext() на mainActivity2.this.

...