有人可以帮助为可点击的ImageView(链接到URL)设置Toast消息吗?
这是我到目前为止所得到的,但我不确定为什么它会在'maketext'上给我一个错误。 如果有人能指出我正确的方向,请提前谢谢你!
public class VideoActivity extends Activity {
ImageView blipImg;
ImageView breakImg;
ImageView dailyMotionImg;
ImageView funnyOrDieImg;
ImageView metaCafeImg;
ImageView netFlixImg;
ImageView socialCamImg;
ImageView tedImg;
ImageView vevoImg;
ImageView viddyImg;
ImageView vimeoImg;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.video1);
blipImg = (ImageView)findViewById(R.id.videoBlip);
blipImg.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.addCategory(Intent.CATEGORY_BROWSABLE);
intent.setData(Uri.parse("http://blip.tv"));
startActivity(intent);
Toast toast = Toast.makeText(VideoActivity.this, "Blip", Toast.LENGTH_SHORT);
toast.show();
}
});
breakImg = (ImageView)findViewById(R.id.videoBreak);
breakImg.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.addCategory(Intent.CATEGORY_BROWSABLE);
intent.setData(Uri.parse("http://break.com"));
startActivity(intent);
Toast toast = Toast.makeText(VideoActivity.this, "Break", Toast.LENGTH_SHORT);
toast.show();
}
});
}
}
答案 0 :(得分:1)
根据the documentation,此方法将Context作为第一个参数,而不是用户点击的View,而是尝试使用您的Activity作为上下文:
Toast toast = Toast.makeText(VideoActivity.this, "Blip", Toast.LENGTH_SHORT);
答案 1 :(得分:1)
我认为这是因为你传递的是beepIng而不是上下文
Toast toast = Toast.makeText(VideoActivity.this , "Blip", Toast.LENGTH_SHORT);
OR
Toast toast = Toast.makeText(VideoActivity.this.getApplicationContext() , "Blip", Toast.LENGTH_SHORT);
答案 2 :(得分:1)
您将ImageView放入Toast中,但无法正常工作。
变化
Toast toast = Toast.makeText(blipImg, "Blip", Toast.LENGTH_SHORT);
toast.show();
到
Toast.makeText(VideoActivity.this, "Blip", Toast.LENGTH_SHORT).show();
答案 3 :(得分:1)
在makeText
中,第一个参数应该是Toast
的上下文(将其更改为VideoActivity.this
)。
答案 4 :(得分:0)
Toast.makeText()采用不同的参数,您应该传递活动上下文而不是ImageView。 Toast也是静态的,所以这样称呼它:
Toast.makeText(VideoActivity.this, "Blip", Toast.LENGTH_SHORT).show();
答案 5 :(得分:0)
正如大家所说的那样,你在param
中使用了错误的makeText()
。您可以使用ActivityName.this
并且它会起作用,但更好的做法是使用Context
被点击的View
,在这种情况下会给您相同的Context
作为ActivityName.this
,但这是更好的做法。
Toast toast = Toast.makeText(v.getContext(), "Blip", Toast.LENGTH_SHORT);
对于instacne,如果您想在其他地方移动或重复使用此代码,则无需更改ActivityName