标签: android-intent

robolectric,没有意图匹配`receiveResult`

看我的代码:

doSomeActionWillStartNewIntentToSelectImage();

// check started intent
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
Assert.assertThat(activity, new StartedMatcher(intent));

// simulate the returning result
shadowOf(activity).receiveResult(
        new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI),
        Activity.RESULT_OK,
        new Intent().setData(activity.drawableId2Uri(R.drawable.icon_ok)));
Run Code Online (Sandbox Code Playgroud)

但它报告错误:

java.lang.RuntimeException: No intent matches 
    Intent{action=android.intent.action.PICK, data=content://media/internal/images/media} among 
   [Intent{action=android.intent.action.PICK, data=content://media/internal/images/media}]
at com.xtremelabs.robolectric.shadows.ShadowActivity.receiveResult(ShadowActivity.java:381)
Run Code Online (Sandbox Code Playgroud)

奇怪的Intent{action=android.intent.action.PICK, data=content://media/internal/images/media}是,它与后者完全相同.

错在哪里以及如何解决?

unit-testing android-intent robolectric

0
推荐指数
1
解决办法
842
查看次数

意图使用putExtra在新活动中显示特定布局

我很好奇我是如何使用的

putExtra("something", something);
Run Code Online (Sandbox Code Playgroud)

在我的应用程序内的新活动的意图,

Intent i = new Intent(getApplicationContext(), MainActivity.class);
i.putExtra("something", something)
startActivity(i);
Run Code Online (Sandbox Code Playgroud)

我需要知道如何发送和接收端看起来像,加载特定的布局文件取决于通过意图中的putExtra发送的内容.

因此,如果我在接收端发送i.putExtra("a",a),它将使用R.layout.a_layout.xml创建内容视图

但如果我发送了i.putExtra("b",b),它将加载R.layout.b_layout.xml

有任何想法吗?

java layout android android-intent

0
推荐指数
1
解决办法
1692
查看次数

如何使用iOS中的文本和按钮在android中创建标题

我想用android中的文本和按钮创建头文件(在左侧和左侧的Cetner和Buttons中的文本),我已经尝试但根本没用,请指导我...我怎么能为我做这个应用

android android-widget android-emulator android-intent android-layout

0
推荐指数
1
解决办法
2985
查看次数

getExtras()返回null

这是我的代码.

在我的主.java文件中.

public void showQuiz (View view){
        Username = (EditText) findViewById(R.id.Username);
        String userId = Username.getText().toString();
        String deviceId = Secure.getString(this.getContentResolver(),
                Secure.ANDROID_ID);
       //this intent is used to open other activity wich contains another webView
         Intent intent = new Intent(this, Quiz.class);

         Bundle bun = new Bundle();
         bun.putString("userid",userId);
         bun.putString("deviceid", deviceId);

         intent.putExtras(bun);
         startActivity(intent); 
    }
Run Code Online (Sandbox Code Playgroud)

这是Activity的.java文件中的内容.

package com.earn.egpt;

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

public class Quiz extends Activity {
    private static final String url = "http://www.m.s-w-family.com/?subid=";
    private static final String url2 = "&deid=";

     @Override
        public …
Run Code Online (Sandbox Code Playgroud)

java android android-intent android-activity

0
推荐指数
1
解决办法
2977
查看次数

如何从扩展Activity的类开始扩展fragment的intent?

我有一个问题,从intent扩展Fragment的类开始扩展Activity.

TabBar2.class - >扩展Activity

Favourite.class - > extends Fragment

这就是我写意图的方式.

Intent intent1 = new Intent(TabBar2.this, Favourite.class);
startActivity(intent1);
Run Code Online (Sandbox Code Playgroud)

但是当我运行intent时,我的应用程序崩溃了onClick.我的logCat说

Unable to instantiate activity
 ComponentInfo{com.honey.test/com.honey.test.Favourite}:
 java.lang.ClassCastException: com.honey.test.Favourite
Run Code Online (Sandbox Code Playgroud)

我做错了什么?有人可以指导我如何解决这个问题吗?

android android-intent

0
推荐指数
1
解决办法
1万
查看次数

如何在android中播放3gp视频文件?

我想在我的Android平板电脑上播放.3gp视频文件.我试过下面的代码,但它会抛出一条错误信息.如何在Android中使用默认视频播放器?

String movieurl = root + "/" + fileNameTextView.getText().toString();           
Intent intent = new Intent(android.content.Intent.ACTION_VIEW); 
Uri data = Uri.parse(movieurl); 
intent.setDataAndType(data,"video/3gpp"); 
startActivity(intent); 
Run Code Online (Sandbox Code Playgroud)

这是错误消息:

11-15 13:47:11.060:E/AndroidRuntime(23061):android.content.ActivityNotFoundException:找不到处理Intent的Activity {act = android.intent.action.VIEW dat =/mnt/sdcard/DCIM/Camera/VID_20121002_174209 .3gp typ = video/3gpp}

android 3gp android-intent

0
推荐指数
1
解决办法
2423
查看次数

启动android相机意图和布局

我正在尝试加载相机从我的Android应用程序拍摄照片,

我的Photos.java是

private Uri imageUri;

public void takePhoto(View view) {
    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
    File photo = new File(Environment.getExternalStorageDirectory(),  "Pic.jpg");
    intent.putExtra(MediaStore.EXTRA_OUTPUT,
            Uri.fromFile(photo));
    imageUri = Uri.fromFile(photo);
    startActivityForResult(intent, TAKE_PICTURE);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
    case TAKE_PICTURE:
        if (resultCode == Activity.RESULT_OK) {
            Uri selectedImage = imageUri;
            getContentResolver().notifyChange(selectedImage, null);
            ImageView imageView = (ImageView) findViewById(R.id.ImageView);
            ContentResolver cr = getContentResolver();
            Bitmap bitmap;
            try {
                 bitmap = android.provider.MediaStore.Images.Media
                 .getBitmap(cr, selectedImage);

                imageView.setImageBitmap(bitmap);
                Toast.makeText(this, selectedImage.toString(),
                        Toast.LENGTH_LONG).show(); …
Run Code Online (Sandbox Code Playgroud)

android android-intent android-layout

0
推荐指数
1
解决办法
4080
查看次数

是否可以在try/catch中启动活动?

我有一个服务,假设启动Android音乐应用程序,基本上使音乐应用程序弹出屏幕.我试图这样做的方式是:

public void onStart(Intent intent, int startId) 
{
    // TODO Auto-generated method stub
    super.onStart(intent, startId);
    System.out.println("LOGS STARTED");
    ActivityManager am = (ActivityManager)this.getSystemService(ACTIVITY_SERVICE);
    List l = am.getRunningAppProcesses();
    Iterator i = l.iterator();
    PackageManager pm = this.getPackageManager();
    while(i.hasNext()) 
    {
        ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo)(i.next());
        try 
        {
            CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName, PackageManager.GET_META_DATA));
            Log.w("LABEL", c.toString());
            if(c.equals("Music"))
            {
                System.out.println("HELLO \n");
                                    Intent in = new Intent();
                in.setClassName("com.android.music", "com.android.music.MediaButtonIntentReceiver");
                startActivity(in);
            }
         }
        catch(Exception e) 
        {
            //Name Not FOund Exception
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

logcat会显示Hello,但由于某种原因,音乐无法启动.但是当我把它移到另一个地方时,它确实开始了.有没有办法这样做,或者我必须以另一种方式做到这一点?我希望用户点击图标后弹出音乐应用程序.这就是我做if c.equals("音乐")部分的原因.它在try中的原因是因为这一行:

CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName, PackageManager.GET_META_DATA));
Run Code Online (Sandbox Code Playgroud)

会得到一个错误,快速解决方法是它被try/catch语句包围.

service android try-catch android-intent android-activity

0
推荐指数
1
解决办法
767
查看次数

Intent对象不起作用

我建了一个选项菜单.其中一个处理发送电子邮件的按钮无效.

以下是方法:

public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main_page, menu);
        return true;
    }

public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.settings: Toast.makeText(this, "You pressed the settings!", Toast.LENGTH_LONG).show();
                                break;
            case R.id.exit:     System.exit(0); //close the program + kill it from memory
                                break;
            case R.id.contactUs:sendEmail();
                                break;
        }
        return true;
    }

private void sendEmail(){
        Intent mailIntent = new Intent();
        mailIntent.setAction(Intent.ACTION_SEND);
        mailIntent.setType("text/plain");
        mailIntent.putExtra(mailIntent.EXTRA_EMAIL, new String[]{"some_email@gmail.com"});
        mailIntent.putExtra(mailIntent.EXTRA_SUBJECT,"Re:Your Application");
    }
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我点击的任何项目(contactUs项目除外)都在工作.当我点击contactUs项目时,它会关闭菜单栏并且什么都不做......

需要帮忙.

编辑:

我改变了以下内容:

private void sendEmail(){
    Intent mailIntent = new Intent();
    mailIntent.setAction(Intent.ACTION_SEND);
    mailIntent.setType("text/plain");
    mailIntent.putExtra(Intent.EXTRA_EMAIL, new …
Run Code Online (Sandbox Code Playgroud)

android menu android-intent

0
推荐指数
1
解决办法
213
查看次数

Android方法startActivity(Intent)未定义类型new View.OnClickListener(){}

public class ListSceneAdapter extends OAListSceneAdapter {

    public ListSceneAdapter(Context context) {
        super(context, R.layout.listitem); // pass the custom UI layout for list items
    }

    @Override
    protected void setupListItemView(View listItemView, OAScene scene) {
        // fill the custom UI with the given scene data for the list item
        ((TextView)listItemView.findViewById(R.id.listItemName)).setText(scene.name);

        // add listener for the button
        final OAScene _scene = scene;
        ((Button)listItemView.findViewById(R.id.listItemButton)).setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Toast.makeText(getContext(), _scene.description, Toast.LENGTH_SHORT).show();
                    }
                });

        ((Button)listItemView.findViewById(R.id.listItemMap)).setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) …
Run Code Online (Sandbox Code Playgroud)

java android android-intent android-activity

0
推荐指数
1
解决办法
9241
查看次数