在可点击的ImageView上祝酒

时间:2013-11-18 15:59:26

标签: java android imageview toast

有人可以帮助为可点击的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();
            }
    });
            }
           }

6 个答案:

答案 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