所以我创建了一个DialogFragment,它通过这种技术显示为对话框
现在它已经启动并且在此弹出窗口中进行用户交互时,我想将另一个片段滑入此对话框.我试图通过FragmentTransaction.add()来做到这一点,我给它在这个布局中的一个容器的id.在这一点上,我得到:
java.lang.IllegalArgumentException: No view found for id 0x7f09013f for fragment <fragmentClassThatIWasPushingIn>
Run Code Online (Sandbox Code Playgroud)
作为一个快速测试,我试图把它推到一个不在对话框中但在主要支持活动中的容器ID,并且工作得很好.
有没有关于DialogFragments及其容器ID的东西,不允许FragmentTransactions?
作为权宜之计,我告诉我的事务隐藏当前的DialogFragment并显示这个新的片段,但是动画/显示有点刺耳,所以我真的想把这个问题排序.
谢谢
我们有一个android应用程序,其清单设置以下配置:
minsdkVersion = "4"
<supports-screens
android:normalScreens="true"
android:largeScreens="true"
android:anyDensity="false" />
Run Code Online (Sandbox Code Playgroud)
但是,当使用摩托罗拉XOOM设备的用户浏览Android Market时,他不会显示我们的应用程序.
为什么会这样?
我正在玩android Fragments,我找到了一些对我来说没什么意义的东西.我正在使用兼容性软件包并在2.3.3的nexus上进行测试,因为我还没有motorola xoom.
我的问题是:当我fragment用另一个替换时,后面的那个继续接收触摸.
这是重现的代码.
我有一个项目列表,当你按一行时,将创建并显示一个新的片段.
但是,如果你触摸绿色片段,它将被接收ListFragment,增加后退按钮的数量按我必须做回去ListFragment.
有人可以解释原因吗?
编辑:作为CommonsWare的建议,我删除,因为我开了这家作为粘贴在这里的代码问题在Android问题跟踪器,您可以下载从那里演示项目.
我正在使用PHP代理来获取文件的内容.我想使用功能强大的jQuery选项搜索该文件,而不必在PHP中编写各种查询.这是我的PHP代码:
$page = file_get_contents( filter_var( $_POST[url], FILTER_SANITIZE_URL ) );
die( json_encode( $page ) );
Run Code Online (Sandbox Code Playgroud)
如果加载的页面太大,PHP将读取整个文档,但json_encoding它只会给出文件的第一部分,而不是整个文件.我找不到关于json传递数据的大小限制的任何内容,但显然有一个.
问题:是否有一种解决方法可以防止只传输部分文件?
我需要从其他域中获取文件,因此在jQuery中读取文件的内容实际上并不是一种选择.
最初我的AndroidManifest.xml包含一个我通过其自定义操作名称到达的活动.
<activity
android:label="HERE I AM"
android:name="TestController">
<intent-filter>
<action android:name="com.company.project.TestActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
随着这个清单startActivity(new Intent("com.company.project.TestActivity"));开始我的活动没有任何问题.
但我对这种编码风格并不满意.早期我被告知不要使用内联定义的字符串常量,因为它会导致代码的可维护性降低.这真的是一个问题.
所以首先我ublic static final String MY_ACTION = "com.company.project.TestActivity";在我的App.java类(我用过的那个)中声明了ap ,并通过这个命名常量以这种方式到达我的组件:
startActivity(new Intent(App.MY_ACTION));
这看起来好多了,但我仍然需要维护两个相同字符串的实例.在http://developer.android.com/reference/android/R.styleable.html#AndroidManifestAction_name上阅读
...这也可能是对包含值的资源(格式为"@ [package:] type:name")或主题属性(格式为"?[package:] [type:] name")的引用这种类型.
所以我猜想将这个字符串定义为JUST ONCE会很好.我输入<string name="MY_ACTION">com.company.project.TestActivity</string>了我的strings.xml并修改了我的App:
public class App ...
public static String MY_ACTION;
@Override
public void onCreate() {
super.onCreate();
MY_ACTION = getString(R.string.MY_ACTION);
...
Run Code Online (Sandbox Code Playgroud)
一切都还行
...直到我改变我的AndroidManifest.xml <action android:name="@string/MY_ACTION" />而不是使用 <action android:name="com.company.project.TestActivity" />.在此次更改后,我最大的惊喜是应用程序在运行时崩溃,抱怨没有为我的意图找到活动.字符串引用可能未正确解析.:(
也许问题是R.string依赖于配置......?但是嘿,我不能这么疯狂地选择这样一个字符串引用,其值可能会从config更改为config!developer.android.com告诉我,在动作名称中使用引用是可以的!我在API级别6,7,结束8时遇到过这种行为.它只是android系统中的一个简单错误吗?或者我误解了什么?
我完全不解,请帮帮我.提前致谢.
android action string-literals intentfilter android-manifest
我LayoutTransition在Honeycomb 尝试新课程.我已经设置了一个动画,View当它添加到一个时,它会滑动到位ViewGroup.我注意到视图首次渲染和LayoutTransition.APPEARING动画开始之间有一点延迟(大约20ms).换句话说,在屏幕上出现视图后,它会在空中停留片刻,然后开始动画到位.您甚至可以在ApiDemos示例项目中注意到这一点.在布局动画示例中,在ViewGroup开始播放动画之前总会有延迟.我甚至尝试将其他LayoutTransition动画设置为null,或者最终给它们设置非常短的持续时间,但APPEARING动画仍然会延迟.这是我的代码:
public class DebugExampleFour extends Activity {
private int numButtons = 1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.debug_example_four);
final ViewGroup frame = (ViewGroup) findViewById(R.id.frame_container);
LayoutTransition transitioner = new LayoutTransition();
Animator appearingAnimation = ObjectAnimator.ofFloat(null, "translationX", 600, 0);
appearingAnimation.setDuration(45);
appearingAnimation.setStartDelay(0);
appearingAnimation.setInterpolator(new DecelerateInterpolator());
appearingAnimation.addListener(new AnimatorListenerAdapter() {
public void onAnimationEnd(Animator anim) {
View view = (View) ((ObjectAnimator) anim).getTarget();
view.setTranslationX(0f);
}
});
transitioner.setAnimator(LayoutTransition.APPEARING, appearingAnimation);
Animator dummyAnimation …Run Code Online (Sandbox Code Playgroud) 背景
对于Android 3.0的发展,我有一个HostActivity是的超类NotebooksActivity和NoteActivity.NotebooksActivity包括一个片段,NotebooksFragment.
在HostActivity,我包含一个菜单,我想在ActionBar的选项菜单的最右端显示,即子类中的所有菜单项HostActivity应该出现在添加的菜单项的左侧HostActivity.
菜单膨胀HostActivity:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
final MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.host_menu, menu);
return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)
问题
当我添加菜单项时NoteActivity,我按预期实现了所需的顺序:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.notebook_menu, menu);
return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)
但是,当我添加菜单项时NotebooksFragment,由于Fragments的工作方式,onCreateOptionsMenu在相同的方法之后调用HostActivity,导致HostActivity菜单项出现在之前NotebooksFragment.
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.notebooks_menu, …Run Code Online (Sandbox Code Playgroud) 我只需要简单的幻灯片并滑出动画片段转换,下面是我的代码:slide_in_left.xml:
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="true">
<translate
android:fromXDelta="-100%"
android:toXDelta="0%"
android:fromYDelta="0%"
android:toYDelta="0%"
android:duration="700">
</translate>
</set>
Run Code Online (Sandbox Code Playgroud)
slide_out_right.xml:
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:fromXDelta="0%" android:toXDelta="100%"
android:fromYDelta="0%" android:toYDelta="0%"
android:duration="700">
</translate>
</set>
Run Code Online (Sandbox Code Playgroud)
我用的代码:
SomeFragment frag = SomeFragment.newInstance(foo);
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right);
ft.replace(R.id.the_fragment, frag);
ft.addToBackStack(null);
ft.commit();
Run Code Online (Sandbox Code Playgroud)
结果看起来非常奇怪,当转换开始时,当前片段消失而没有动画,输入片段(从左侧)像滚动纸一样.我的动画xml代码出了什么问题?
谢谢!
我在平板电脑应用程序中有一个活动,我想根据方向显示不同的碎片.我认为最简单的方法就是定义两个不同的布局XML文件,一个用于横向,一个用于纵向.换句话说,我有/layout/home.xml,如下所示:
<LinearLayout android:orientation="horizontal">
<fragment class="com.foo.app.Frag1" android:id="frag1"/>
<fragment class="com.foo.app.Frag2" android:id="frag2"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
然后在/layout-port/home.xml中:
<LinearLayout android:orientation="vertical">
<fragment class="com.foo.app.Frag2" android:id="frag2"/>
<fragment class="com.foo.app.Frag3" android:id="frag3"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
当我跑步时,我可以从风景开始去画像,一切都很好.但是,当我从纵向转到横向时,应用程序崩溃时会发生android.content.res.Resources $ NotFoundException,其资源ID等于"frag3".这是正确的,它正在寻找Frag3时,去景观制作,并在该模式中没有Frag3.这在Activity.onCreate堆栈期间发生,因此在我的任何代码有任何机会使应用程序崩溃之前.
片段不应该以这种方式工作吗?我需要使用FragmentTransaction吗?
我应该使用什么API将Java对象转换为CSV.我可以使用google-gson将java对象转换为CSV格式吗?
android ×8
animation ×2
action ×1
google-play ×1
gson ×1
intentfilter ×1
java ×1
json ×1
layout ×1
limit ×1
menu ×1
php ×1
size ×1
transition ×1