2012-01-06 63 views
-3

我有这个问题,我的按钮不让我打开给定的URL。只要我打开这个活动,它就会关闭。这是我的代码不能让按钮上班

public class TemakiActivity extends Activity { 

Button button; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.contentviewer); 

    ImageView imageView = (ImageView) findViewById(R.id.videolink); 
    imageView.setImageResource(R.drawable.videothumb); 

    addListenerOnButton(); 

} 

public void addListenerOnButton() { 

    button = (Button) findViewById(R.id.videolink); 
    button.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      Intent browserIntent = 
         new Intent(Intent.ACTION_VIEW, Uri.parse("http://google.com")); 
      startActivity(browserIntent); 

     } 

    }); 

    TextView helloTxt = (TextView)findViewById(R.id.ingredientslister); 
    helloTxt.setText(readTxt()); 
} 

private String readTxt(){ 

InputStream inputStream = getResources().openRawResource(R.raw.temakiingredients); 
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); 

int i; 
try { 
i = inputStream.read(); 
while (i != -1) 
    { 
    byteArrayOutputStream.write(i); 
    i = inputStream.read(); 
    } 
    inputStream.close(); 
} catch (IOException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} 

return byteArrayOutputStream.toString(); 
} 
} 

当我打开这个活动,它只是强制关闭!问题似乎与按钮,我不能得到它的工作,任何解决方案?

+0

您是否检查过logcat? – 2012-01-06 08:48:26

+0

我重写了代码,这是我用setOnClickListener得到的:类型View中的方法setOnClickListener(View.OnClickListener)不适用于参数(new OnClickListener(){}) – borislemke 2012-01-06 08:50:22

+0

Logcate错误? – 2012-01-06 08:51:10

回答

2

你有ImageView的相同ID和按钮。你必须有不同的身份证,否则你输错了。由于id的冲突,编译器会提供错误。 你有ImageView findViewById(R.id.videolink) Button findViewById(R.id.videolink);

+0

编译器不关心。这导致在运行时类抛出异常。 – 2012-01-06 08:58:17

+0

Dany是正确的,它在该行!谢谢Dany,是的,我错了ID。情况! – borislemke 2012-01-06 09:00:45

-1

看起来你的进口有问题。

尝试这样:

button.setOnClickListener(new View.OnClickListener() { 
+0

不客气 - 所以请接受这个职位作为你的答案。 – mseo 2012-01-06 08:58:35

+0

我没有downvote它,但我接受danys答案因为它更完整。对不起:( – borislemke 2012-01-06 09:09:45

0
button.setOnClickListener(new Button.OnClickListener() 

我认为你需要使用Button.OnClickListener(); p

1

看你用

button = (Button) findViewById(R.id.videolink); 

检查按钮的ID,因为使用的是相同的ID与ButtonImageView 检查其控制具有videolink ID?