我对启动新活动有疑问.归结为此.我在视图上有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中,我定义了一个活动ExampleActivity.
当我的应用程序启动时,创建了这个A-Activity的一个实例,比如它A.当用户单击一个按钮时A,另一个B-Activity实例创建了B. 现在任务堆栈是BA,B位于顶部.然后,用户单击B上的按钮,另一个C-Activity实例,并创建了C. 现在任务堆栈是CBA,C位于顶部.
现在,当用户单击C上的按钮时,我希望应用程序将A带到前台,即使A位于任务堆栈顶部ACB.
我怎样才能编写代码来实现它?
我有四个活动,比如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
我正在开发一个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:*(
如何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
我有一个服务类.我已将此类导出到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
我基本上想要创建一个intent并将它传递给我的BroadcastReceiver的onReceive()服务.
到目前为止,我总是使用View.getContext(),但在这里,我被卡住了.我怎样才能获得上下文以便我可以使用public Intent (Context packageContext, Class<?> cls)?
service android broadcastreceiver android-intent android-context
我试图使用意图将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编程的新手,在将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) 我已经阅读了几篇关于使用它的帖子,但必须遗漏一些因为它不适合我.我的活动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
android ×10
android-intent ×10
java ×2
service ×2
arraylist ×1
exit ×1
facebook ×1
intentfilter ×1