我需要做些什么来使一个imagebutton在android中启动另一个应用程序

时间:2012-03-15 11:53:58

标签: android eclipse android-intent

我正在创建一款应用。但现在我希望它用图像按钮打开另一个应用程序。我搜索了谷歌5天,有很多芒果但不是正确的。

有芒果,但没有完整的解释。

我找到了这个部分

Intent intent = new Intent(Intent.ACTION_MAIN); intent.setComponent(new ComponentName("com.package.address","com.package.address.MainActivity")); startActivity(intent);

但是我必须把它放在哪里才能在我的图像按钮上工作。以及我必须做什么课程或事情。

这是我的appactifity.java

    package eu.cornholio.rom;

import android.app.Activity;
import android.os.Bundle;

public class CornholioROMActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }


}

这是我的main.xml

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

    <ImageView
        android:id="@+id/imageView1"
        android:gravity="center"
         android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/cornh" android:contentDescription="@string/cornholio"/>

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="@string/cornholio" />

    <ImageButton
        android:id="@+id/imageButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/cwm" android:clickable="true" android:contentDescription="@string/cmw"/>

    <ImageButton
        android:id="@+id/imageButton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/jkay"
         android:clickable="true"
          android:contentDescription="@string/jkay"/>


</LinearLayout>            

这里是我的代码

    package eu.cornholio.rom;

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

public class CornholioROMActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        //finding your image button
        ImageButton btn = (ImageButton) findViewByid(R.id.imageButton1);

        //setting onClick listener
        btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(Intent.ACTION_MAIN);
                intent.setComponent(new ComponentName("eu.chainfire.cfroot.cwmmanager",
                                       "eu.chainfire.cfroot.cwmmanager.MainActivity"));
                startActivity(intent); 
            }
        });

    }

}

greetz drgekko

3 个答案:

答案 0 :(得分:0)

将onClickListener设置为ImageButton。

yourImageButton.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.setComponent(new ComponentName("com.package.address",
                               "com.package.address.MainActivity"));
        startActivity(intent); 
    }
});

<强>更新

例如,如果您要在imageButton1上设置点击操作,则需要在 onCreate 方法中进行以下更改:

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

    //finding your image button
    ImageButton btn = (ImageButton) findViewById(R.id.imageButton1);

    //setting onClick listener
    btn.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(Intent.ACTION_MAIN);
            intent.setComponent(new ComponentName("com.package.address",
                                   "com.package.address.MainActivity"));
            startActivity(intent); 
        }
    });

}

答案 1 :(得分:0)

你必须为你的ImageButton定义一个OnClickListener。

这看起来有点像这样:

  myFancyButton.setOnClickListener(new OnClickListener() {
  public void onClick(View v) {
    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.setComponent(new ComponentName("com.package.address","com.package.address.MainActivity"));
    startActivity(intent);
  }
});

答案 2 :(得分:0)

您还可以在不知道主要活动的情况下调用其他应用程序:

imageButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
          Intent intent = getPackageManager().getLaunchIntentForPackage("com.package.address"); 
          startActivity(intent);

        }
});