打开webview时Android应用程序崩溃
我正在尝试将变量url_1的值从主活动传输到webview。但当我点击按钮时,应用程序崩溃了。我也使用putExtra,但它不起作用。请看下面的代码打开webview时Android应用程序崩溃,android,android-layout,android-studio,Android,Android Layout,Android Studio,我正在尝试将变量url_1的值从主活动传输到webview。但当我点击按钮时,应用程序崩溃了。我也使用putExtra,但它不起作用。请看下面的代码 public class CustomAdapter extends BaseAdapter{ String [] result; Context context; int [] imageId; private static LayoutInflater inflater=null; public Cust
public class CustomAdapter extends BaseAdapter{
String [] result;
Context context;
int [] imageId;
private static LayoutInflater inflater=null;
public CustomAdapter(MainActivity mainActivity, String[] prgmNameList, int[] prgmImages) {
// TODO Auto-generated constructor stub
result=prgmNameList;
context=mainActivity;
imageId=prgmImages;
inflater = ( LayoutInflater )context.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return result.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public class Holder
{
TextView tv;
ImageView img;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
Holder holder=new Holder();
View rowView;
rowView = inflater.inflate(R.layout.new_custom_list, null);
holder.tv=(TextView) rowView.findViewById(R.id.textView1);
holder.img=(ImageView) rowView.findViewById(R.id.imageView1);
holder.tv.setText(result[position]);
holder.img.setImageResource(imageId[position]);
rowView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent myIntent = null;
if (position == 0) {
CustomAdapter.this.context.startActivity(new Intent(CustomAdapter.this.context, BalanceActivity.class));
}
if (position == 1) {
String url_1 = "http://www.facebook.com";
myIntent.putExtra("url", url_1);
CustomAdapter.this.context.startActivity(new Intent(CustomAdapter.this.context, WebShow1.class));
}
}
});
return rowView;
}
}
你的myIntent是空的。您正在使用以下工具创建它:
Intent myIntent = null;
在不初始化的情况下,您希望将一些数据放入:
myIntent.putExtra("url", url_1);
我不知道您想用MyIntentB做什么,但它必须初始化,例如在活动中使用
myIntent = getIntent();
在适配器中,您可以从上下文引用它,如:
Intent myIntent = ((Activity) context).getIntent();
在使用意图进行操作之前,请确保意图不为空:
if(myIntent!=null){
//do your stuff
}
或者,如果您想在您的案例中启动一项新活动:
Intent myIntent = null;
if (position == 0) {
myIntent = new Intent(CustomAdapter.this.context, BalanceActivity.class);
CustomAdapter.this.context.startActivity(myIntent);
}
if (position == 1) {
myIntent = new Intent(CustomAdapter.this.context, WebShow1.class);
String url_1 = "http://www.facebook.com";
myIntent.putExtra("url", url_1);
CustomAdapter.this.context.startActivity(myIntent);
}
您这样做是完全错误的。我的意图变量将始终为空。您正在使用新的意图对象启动活动,然后将VAIBALE添加到不同的意图对象。您需要使用相同的意图对象,首先将变量放入其中,然后启动意图 像这样 在WebView类中
String url = getIntent().getExtras().getString("url");
您好@Opiatefuchs谢谢您的快速回复。。。我已经添加了整个活动代码。请让我知道我需要编辑哪些内容。我是一名初级程序员,仍在学习基本的编码。我投了反对票。在以后的问题中,请不要这样称呼志愿者,谢谢!在该问题中找不到紧急乞讨……是否已删除?
String url = getIntent().getExtras().getString("url");