带有OnClickListener的ImageView无法正常工作

时间:2013-06-30 16:48:38

标签: android eclipse imageview onclicklistener

我是Android开发的新手,并尝试使用OnClickListener设置ImageView。单击ImageView后,我想要打开一个新活动。我已经创建了一个XML格式的新菜单,我想要打开它,并在Java中引用它,并根据我遵循的许多教程假设正确设置所有内容。这是我的代码,希望有人可以提供帮助。

package com.youtube.iamjackpot;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ImageView;

public class searchmenu extends Activity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.searchmenu);

    ImageView SearchButton = (ImageView) findViewById(R.id.SearchButton);
    SearchButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent opensearchmenu = new Intent(
                    "com.youtube.iamjackpot.searchmenu");
            startActivity(opensearchmenu);
        }

    });

}
} 
  

这是我要打开的页面的XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/searchmenu" >

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:background="@drawable/background_meduim"
    android:gravity="center_horizontal" >
</RelativeLayout>

</RelativeLayout>
  

这是我的主要XML,其中包含“搜索按钮”ImageView

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >

<RelativeLayout
    android:id="@+id/TopTwoButtons"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:background="@drawable/background_meduim"
    android:gravity="center_horizontal" >

    <ImageView
        android:id="@+id/ListButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginRight="35dp"
        android:layout_marginTop="130dp"
        android:src="@drawable/list_button_medium" />

    <ImageView
        android:id="@+id/SearchButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignTop="@+id/ListButton"
        android:layout_marginLeft="35dp"
        android:src="@drawable/search_button_medium" />

    <ImageView
        android:id="@+id/PopularButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/SearchButton"
        android:layout_below="@+id/SearchButton"
        android:layout_marginTop="86dp"
        android:src="@drawable/popular_button_medium" />

    <ImageView
        android:id="@+id/InfoButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/ListButton"
        android:layout_alignTop="@+id/PopularButton"
        android:src="@drawable/info_button_meduim"
         />

</RelativeLayout>



</RelativeLayout>

@blackbelt是的,抱歉没有添加实际问题。当我点击“搜索”按钮时,没有任何事情发生,好像它根本没有设置。

4 个答案:

答案 0 :(得分:0)

你以错误的方式创建你的Intent,你需要使用你要打开的Activity的.class引用:

Intent intent = new Intent(searchmenu.this, youractivityclassname.class);
startActivity(intent);

答案 1 :(得分:0)

使用此代码

Intent opensearchmenu = new Intent(searchmenu.this,
                "Actvity name");
        startActivity(opensearchmenu);

例如

 Intent opensearchmenu = new Intent(searchmenu.this,
                FirstActivity.class);
        startActivity(opensearchmenu);

注意:活动名称将是您要在imageview上打开的类名。

答案 2 :(得分:0)

在代码中尝试此更改 -     Intent opensearchmenu = new Intent(SearchMenu.this,newActivity.class); startActivity(opensearchmenu);

答案 3 :(得分:0)

首先将其他活动添加到清单中,然后就可以使用。

Intent intent = new Intent(SearchMenu.this, MyOtherActivity.class);
startActivity(intent);

举个例子:

<activity android:name="MyOtherActivity" />