我想在图片点击时打开我的应用程序商店链接。在mainactivity文件中,在OnCreate中,我添加了以下
ImageView Button = (ImageView)findViewById(R.id.imageView5);
Button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.addCategory(Intent.CATEGORY_BROWSABLE);
intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=APPNAME"));
startActivity(intent);
}
});
在布局文件中,这是我的图像;
<ImageView
android:id="@+id/imageView5"
android:layout_width="232dp"
android:layout_height="105dp"
android:layout_marginTop="10dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:visibility="visible"
ads:srcCompat="@drawable/write009" />
我在哪里做错了?
更新:这是我在使用虚拟设备进行调试后从logcat获得的内容
java.lang.RuntimeException: Unable to start activity
ComponentInfo{antivirus.android.APPNAME/com.APPNAME.activities.MainActivity}:
java.lang.NullPointerException: Attempt to invoke virtual method 'void
android.view.View.setOnClickListener(android.view.View$OnClickListener)' on a
null object reference
答案 0 :(得分:2)
如果没有崩溃日志很难猜出问题,但我认为您不应该在意图中使用addCategory(Intent.CATEGORY_BROWSABLE)
。
ImageView button = (ImageView)findViewById(R.id.imageView5);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=APPNAME"));
startActivity(intent);
}
});
答案 1 :(得分:1)
尝试使用此
<ImageView
android:id="@+id/imageView5"
android:layout_width="232dp"
android:layout_height="105dp"
android:layout_marginTop="10dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:visibility="visible"
android:src="@drawable/write009" />
将ads:srcCompat
更改为android:src
。
答案 2 :(得分:1)
根据LogCat,您的变量Button
为空 - findViewById()找不到R.id.imageView5
。您确定编辑了正确的布局文件吗?您是否使用onCreate()
在活动setContentView(R.layout.your_layout_name)
的初始化时加载此布局文件?
另外,您可以尝试将变量名称更改为小写button
,也许它与类Button
发生冲突(我怀疑这一点,但会发生奇怪的事情)