我正在使用持有人的标签片段之一创建一个列表视图,在该列表视图中,我按下了弹出选项,如共享,显示优惠券等。一旦用户点击任何这些选项,新活动需要是开始。 当我点击"显示优惠券"菜单弹出窗口中的选项,以启动新活动,基本上显示优惠券的图像,我的应用程序崩溃说"不幸的是应用程序被停止" 我正在共享适配器和优惠券活动代码和menu_list.xml。请帮助为什么新活动没有开始。 1.我的适配器类:
<a href="#starks-panel" id="first" class="mdl-tabs__tab" [class.is-active]="isOn">Starks</a
2。我的新活动:
.modal-body
{
overflow-y:scroll;
height:400px;
}
Menu_list.xml:
[
package com.trillbit.retail.activity;
import android.content.Context;
import android.content.Intent;
import android.media.Image;
import android.os.Bundle;
import android.support.v7.view.ContextThemeWrapper;
import android.widget.PopupMenu;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ToggleButton;
import com.trillbit.retail.R;
/**
* Created by shashikant.burnwal on 12-29-2016.
*/
public class PlaceAdapter extends ArrayAdapter<Place>{
final Context mContext;
int mLayoutResourceID;
Place mData[]=null;
public PlaceAdapter(Context context, int resource, Place[] data) {
super(context, resource, data);
this.mContext = context;
this.mLayoutResourceID = resource;
this.mData = data;
}
@Override
public Place getItem(int position) {
return super.getItem(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row=convertView;
PlaceHolder holder=null;
//row initialization
if(row==null){
LayoutInflater inflater=LayoutInflater.from(mContext);
row=inflater.inflate(mLayoutResourceID,parent,false);
holder=new PlaceHolder();
holder.nameView=(TextView)row.findViewById(R.id.nameTextView);
holder.offerView=(TextView)row.findViewById(R.id.zipcodeTextView);
holder.imageView=(ImageView)row.findViewById(R.id.imageView);
holder.menuButton=(ImageButton)row.findViewById(R.id.menu_button);
row.setTag(holder);
}else{
holder=(PlaceHolder)row.getTag();
}
Place place=mData[position];
holder.nameView.setText(place.mPlace);
holder.offerView.setText(String.valueOf(place.mOffer));
int resID=mContext.getResources().getIdentifier(place.mImage,"drawable",mContext.getPackageName());
holder.imageView.setImageResource(resID);
//menuButton Activity
holder.menuButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Context wrapper = new ContextThemeWrapper(getContext(), R.style.popupMenuStyle);
PopupMenu popup = new PopupMenu(wrapper,view);
popup.getMenuInflater().inflate(R.menu.menu_list,popup.getMenu());
popup.show();
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch(item.getItemId()){
case R.id.share:
return true;
case R.id.show_coupon:
Intent intent = new Intent();
intent.setClass(getContext(), CouponActivity.class);
Bundle bunde = new Bundle();
bunde.putString("coupon","Here is Coupon");
intent.putExtras(bunde);
getContext().startActivity(intent);
return true;
case R.id.like:
return true;
default:
return true;
}
}
});
}
});
return row;
}
private static class PlaceHolder{
TextView nameView;
TextView offerView;
ImageView imageView;
ImageButton menuButton;
}
}
] 1
我还附上了我的应用程序外观的图像:
答案 0 :(得分:0)
1)确保您已将CouponActivity添加为清单文件中的活动。
2)当您从非活动类启动新活动时,需要在启动意图之前添加标记 Intent.FLAG_ACTIVITY_NEW_TASK 。
holder.menuButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Context wrapper = new ContextThemeWrapper(getContext(), R.style.popupMenuStyle);
PopupMenu popup = new PopupMenu(wrapper,view);
popup.getMenuInflater().inflate(R.menu.menu_list,popup.getMenu());
popup.show();
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch(item.getItemId()){
case R.id.share:
return true;
case R.id.show_coupon:
Intent intent = new Intent();
intent.setClass(getContext(), CouponActivity.class);
Bundle bunde = new Bundle();
bunde.putString("coupon","Here is Coupon");
intent.putExtras(bunde);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //Needed when starting an activity from a non-activity class
getContext().startActivity(intent);
return true;
case R.id.like:
return true;
default:
return true;
}
}
});
}
});