标签: android-intent

Android:捕获活动的返回

我对启动新活动有疑问.归结为此.我在视图上有3个选项卡

A) contains gMap activity
 B) camera activity
 C) some random text fields.
Run Code Online (Sandbox Code Playgroud)

要求是应用程序以纵向模式运行.

除了Camera Preview Surface(B)之外,所有3个选项卡都按预期工作.它旋转了90度.他们唯一的方法就是将应用程序设置为横向,这会抛出我所有的标签,并且几乎不可行.

我的解决方案是:替换

我的相机活动有一个空的常规活动,除了

Intent i = new Intent(this,CameraActivity.class);
    startActivity(i);
Run Code Online (Sandbox Code Playgroud)

这将启动我的CameraActivity.这很好.我必须做一个线性布局并包含3个看起来像真正的标签的图像,所以我可以尝试模仿标签的操作,同时将屏幕旋转到横向并将视觉效果保持为纵向.用户可以单击其中一个图像(按钮)以显示下一个选项卡.这是我的问题.它应退出我的"相机活动",返回选项卡中的"空白活动",应该将其解释为从我的图像中单击已删除的选项卡.

最重要的是,当它返回时,它返回到选项卡下的空白(黑色)页面(因为它是'空').如何将返回事件捕获回调用该活动的页面,然后查看它们执行了哪些操作?

我可以设置一个onclicklistener,我可以响应被点击的假标签(图像)退出相机活动.退出时,选项卡应更新,以便您返回.有什么建议?

谢谢,

android exit android-intent android-activity

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

如何将活动带到前台(堆栈顶部)?

在Android中,我定义了一个活动ExampleActivity.

当我的应用程序启动时,创建了这个A-Activity的一个实例,比如它A.当用户单击一个按钮时A,另一个B-Activity实例创建了B. 现在任务堆栈是BA,B位于顶部.然后,用户单击B上的按钮,另一个C-Activity实例,并创建了C. 现在任务堆栈是CBA,C位于顶部.

现在,当用户单击C上的按钮时,我希望应用程序将A带到前台,即使A位于任务堆栈顶部ACB.

我怎样才能编写代码来实现它?

android android-intent android-activity

81
推荐指数
4
解决办法
12万
查看次数

使用startActivityForResult,如何在子活动中获取requestCode?

我有四个活动,比如A,B,C和D.我的情况是A将通过startActivityForResult启动活动B.

startActivityForResult(new Intent(this,B.class),ONE);
Run Code Online (Sandbox Code Playgroud)

在其他情况下,我将B与其他情况.喜欢

 startActivityForResult(new Intent(this,B.class),TWO);
Run Code Online (Sandbox Code Playgroud)

在B中,我需要根据requestCode调用C或D. 即如果ONE需要启动C else D.
所以我需要知道如何检查子Activity中的requestCode(这里是B).
换句话说,我想获得活动B开始的请求代码.

android android-intent android-activity startactivityforresult

81
推荐指数
3
解决办法
6万
查看次数

Android和Facebook分享意图

我正在开发一个Android应用程序,我很想知道如何使用Android的共享意图从应用程序内更新应用程序用户的状态.

通过浏览Facebook的SDK看起来这很容易做到,但是我很想让用户通过常规的Share Intent弹出窗口来完成它吗?看到这里:

弹出

我尝试过通常的共享意图代码,但这似乎不适用于Facebook.

public void invokeShare(Activity activity, String quote, String credit) {
    Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
    shareIntent.setType("text/plain");
    shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, activity.getString(R.string.share_subject));
    shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Example text");    

    activity.startActivity(Intent.createChooser(shareIntent, activity.getString(R.string.share_title)));
}
Run Code Online (Sandbox Code Playgroud)

更新:进行了更多的挖掘,看起来这是Facebook的应用程序的一个错误尚未解决!(facebook bug)对于平均时间,看起来我只能忍受负面的"分享不起作用!!!" 评论.干杯Facebook:*(

android facebook android-intent

81
推荐指数
4
解决办法
13万
查看次数

Action Bar的Home按钮的onClick监听器

如何onClickListener为Action Bar的Home按钮实现自定义?

我已经做了一个getSupportActionBar().setDisplayHomeAsUpEnabled(true);,现在我想将用户重定向到某个活动,以防点击Home按钮.

我尝试过:

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.home:
            item.setOnMenuItemClickListener(new OnMenuItemClickListener() {
                public boolean onMenuItemClick(MenuItem item) {
                    Intent i = new Intent();
                    i.setClass(BestemmingActivity.this, StartActivity.class);
                    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    startActivity(i);
                    return true;
                }
            });
        default:
            return super.onOptionsItemSelected(item);
        }
    }
Run Code Online (Sandbox Code Playgroud)

但它永远不会进入onMenuItemClick.

基本上,它就像在这个链接中一样,但它仍然没有进入监听器.

android android-intent onitemclicklistener actionbarsherlock

81
推荐指数
5
解决办法
10万
查看次数

无法启动服务意图

我有一个服务类.我已将此类导出到jar,并且已将jar嵌入到我的客户端应用程序中.

需要时,我会调用服务类.当我尝试这样做时,我收到以下错误:

Unable to start service Intent {comp={com.sample.service/com.sample.service.serviceClass}} : not found
Run Code Online (Sandbox Code Playgroud)

除了服务类之外,我还有其他类,我可以访问它(创建该类的对象),它们位于同一个jar中.

我觉得我错过了我的配置或清单中的一些东西.

请帮我识别一下.我的代码如下:

public void onCreate(Bundle savedInstanceState) {    
      super.onCreate(savedInstanceState);  
      Intent intent = new Intent () ;  
      intent.setClassName("com.sample.service" ,"com.sample.service.serviceClass") ;  
      this.startService(intent) ; // when I call this line I get the message...  
      // binding other process continue  here   
}
Run Code Online (Sandbox Code Playgroud)

客户端manifest.xml

<service android:name="com.sample.service.serviceClass"  
            android:exported="true" android:label="@string/app_name" 
            android:process=":remote">
   <intent-filter><action android:name="com.sample.service.serviceClass"></action>
   </intent-filter>
</service>
Run Code Online (Sandbox Code Playgroud)

提前谢谢,
Vinay

service android intentfilter android-intent

80
推荐指数
4
解决办法
11万
查看次数

Android - 从广播接收器onReceive()获取上下文以发送到

我基本上想要创建一个intent并将它传递给我的BroadcastReceiver的onReceive()服务.

到目前为止,我总是使用View.getContext(),但在这里,我被卡住了.我怎样才能获得上下文以便我可以使用public Intent (Context packageContext, Class<?> cls)

service android broadcastreceiver android-intent android-context

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

通过Intent传递ArrayList

我试图使用意图将arrayList传递给另一个活动.这是第一个活动中的代码.

case R.id.editButton:
        Toast.makeText(this, "edit was clicked", Toast.LENGTH_LONG).show();
        Intent intent = new Intent(this, editList.class);
        intent.putStringArrayListExtra("stock_list", stock_list);
        startActivity(intent);
        break;
Run Code Online (Sandbox Code Playgroud)

这是我尝试在第二个活动中检索列表的地方.这里有问题吗?

Intent i = new Intent(); //This should be getIntent();
    stock_list = new ArrayList<String>();

    stock_list = i.getStringArrayListExtra("stock_list");
Run Code Online (Sandbox Code Playgroud)

android arraylist android-intent

79
推荐指数
4
解决办法
11万
查看次数

Android:将数据(附加内容)传递给片段

我是Android编程的新手,在将Parcelable的ArrayList传递给片段时遇到了问题.这是启动的Activity(运行良好!),其中feedlist是可分割音乐的ArrayList .

Intent in = new Intent(context, ListMusicsActivity.class);

in.putExtra("arrayMusic", feedList);
activity.startActivity(in);
Run Code Online (Sandbox Code Playgroud)

片段Activity onCreate()方法:

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activitymusiclist);

    if(savedInstanceState != null)
    {
        ListMusicFragment frag = new ListMusicFragment();
        frag.setArguments(getIntent().getExtras());
    }
}
Run Code Online (Sandbox Code Playgroud)

片段代码:

public class ListMusicFragment extends SherlockFragment{

private ArrayList<Music> listMusics = new ArrayList<Music>();
private ListView listMusic;


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
    Bundle savedInstanceState)
{
    listMusics = (ArrayList<Music>) getArguments().getSerializable("arrayMusic");
    View view = inflater.inflate(R.layout.musiclistview, container, false);
    listMusic = (ListView) view.findViewById(R.id.musicListView);
    listMusic.setAdapter(new MusicBaseAdapter(getActivity(), listMusics));

    return …
Run Code Online (Sandbox Code Playgroud)

java android nullpointerexception android-intent

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

你如何使用Intent.FLAG_ACTIVITY_CLEAR_TOP清除活动堆栈?

我已经阅读了几篇关于使用它的帖子,但必须遗漏一些因为它不适合我.我的活动A在清单中有launchmode ="singleTop".它启动活动B,启动模式="singleInstance".活动B打开浏览器并接收和意图返回,这就是为什么它是singleInstance.我试图覆盖后退按钮,以便用户被发送回活动A,然后可以按Back返回活动,而不是再次返回活动B.

// activity B
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
 if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR
  && keyCode == KeyEvent.KEYCODE_BACK
  && event.getRepeatCount() == 0) onBackPressed();
 return super.onKeyDown(keyCode, event);
}
@Override
public void onBackPressed() {
 startActivity(new Intent(this, UI.class)
 .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK));
 return;
}
Run Code Online (Sandbox Code Playgroud)

从浏览器返回后,堆栈是...... A,B,浏览器,B

我希望这段代码能够将堆栈更改为...... A ...以便再次按下后再将用户带回主屏幕.

相反,它似乎将堆栈更改为... A,B,浏览器,B,A ......好像那些标志不在那里.

我尝试在startActivity之后调用活动B中的finish(),但后面的按钮再次将我带回浏览器!

我错过了什么?谢谢!

java android android-manifest android-intent android-activity

76
推荐指数
5
解决办法
17万
查看次数