我item_bg_selector.xml在drawable文件夹中创建了一个状态列表选择器文件,如下所示:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true"
android:drawable="@drawable/item_background_selected" />
<item android:state_focused="true"
android:drawable="@drawable/item_background_selected" />
<item android:state_pressed="true"
android:drawable="@drawable/item_background_selected" />
<item android:drawable="@android:color/transparent"/>
</selector>
Run Code Online (Sandbox Code Playgroud)
然后我定义一个样式元素
<style name="Item">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:background">@drawable/item_bg_selector</item>
</style>
Run Code Online (Sandbox Code Playgroud)
然后我尝试创建ImageButton这样的:
<ImageButton style="@style/Item"
android:id="@id/btn_home"
android:src="@drawable/home_button" />
Run Code Online (Sandbox Code Playgroud)
Eclipse不断在Event Details窗口中给出以下错误:
Failed to parse file /path/to/projectdir/res/drawable/item_bg_selector.xml
Run Code Online (Sandbox Code Playgroud)
异常跟踪如下:
org.xmlpull.v1.XmlPullParserException: Binary XML file line #16: <item> tag requires a 'drawable' attribute or child tag defining a drawable
at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:167)
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:787)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:728)
at com.android.layoutlib.bridge.impl.ResourceHelper.getDrawable(ResourceHelper.java:208)
at com.android.layoutlib.bridge.android.BridgeTypedArray.getDrawable(BridgeTypedArray.java:731)
at android.view.View.<init>(View.java:1885)
at android.widget.ImageView.<init>(ImageView.java:112) …Run Code Online (Sandbox Code Playgroud) 我想知道拥有的后果targetSDK > buildTarget.
最近我发现,如果我保持buildTarget=16和targetSDK=17标签上我的平板电脑(运行4.1.1,API等级16)移动到动作条的中心.我无法使行为合理化.有人可以解释为什么会这样吗?
我有一个具有以下属性的发电机表:
我希望能够通过标签查询 - 获取标记为android的所有项目.我怎么能在DynamoDB中做到这一点?看起来全局二级索引只能在ScalarDataTypes(Number和String)上构建,而不能在一个集合中的项目上构建.
如果我采用的方法是错误的,通过创建不同的表或更改属性来实现它的另一种方法也没关系.
一个android库项目包含一些提供程序,其权限在合同类中定义如下:
public static final String CONTENT_AUTHORITY = "my.com.library.providers.tester";
private static final Uri BASE_CONTENT_URI = Uri.parse("content://" + CONTENT_AUTHORITY);
Run Code Online (Sandbox Code Playgroud)
现在有很多应用程序项目使用这个库项目.我目前面临的问题是,对于每个应用程序项目,我需要在库项目中为每个应用程序设置一个单独的分支,以便拥有唯一的内容权限.这会产生一些版本管理问题(例如将功能/错误修复从一个分支传播到每个其他分支等).相反,我想将定义内容权限的责任委托给app项目.有没有办法实现这个目标?
java android authority android-contentprovider android-library
我需要使用自定义动画制作2个屏幕,如下所示:
Screen 1 Screen 2
----------------------------- ------------------------------
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| List 1 | List2 | ---------> | List 3 | List 4 |
| | | | | |
| | | | | … android android-animation android-fragments android-viewpager
我想在一个使用android库项目的android应用程序中使用proguard ,我收到以下错误:
java.io.IOException: Can't write
[/private/var/folders/Pg/PgUpPJQ-E5qxL7jX6kpdCE+++TI/-Tmp-/android_3140050575281008652.jar]
(Can't read [proguard.ClassPathEntry@1f8d244]
(Duplicate zip entry
[be.class == android_144638064543155619.jar:com/comp/dp/library/R$anim.class]))
at proguard.OutputWriter.writeOutput(OutputWriter.java:224)
at proguard.OutputWriter.execute(OutputWriter.java:120)
at proguard.ProGuard.writeOutput(ProGuard.java:391)
at proguard.ProGuard.execute(ProGuard.java:152)
at proguard.ProGuard.main(ProGuard.java:499)
Run Code Online (Sandbox Code Playgroud)
我的proguard.cfg文件就是这个,还有一些-libraryjars引用了rt.jar几个其他依赖库.
我的猜测是这个问题与使用Library Project有关,而proguard正在尝试两次处理来自库项目的条目.但我不确定应该用哪种方法来解决这个问题.
任何建议/方向都非常感谢.
更新1: 通过删除-injars bin/classes我能够解决这个问题.我的猜测是因为proguard处理库项目和应用程序项目.class库项目的文件被处理了两次.一旦进入库项目的bin/classes文件夹,另一次进入应用程序项目的bin/classes文件夹.
我git --bare init在一个错误的目录(在服务器中)运行.我在该目录中看到文件branches,config,deps等..如何撤消它?
我正在尝试创建一个VideoViewer片段.以下是我尝试的2个案例和观察结果.对于这两种情况,片段的视图从以下布局中膨胀:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<VideoView android:id="@+id/fragment_video_viewer_video"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
案例1:没有媒体控制器的VideoView -工作正常.以下是该onActivityCreated方法的代码
/* Initialize the variables here, retrieve views and */
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// Assignment for the local variables
mVideoView = (VideoView) getView().findViewById(R.id.fragment_video_viewer_video);
mVideoView.setVideoPath("/sdcard/family_guy_test.3gp");//(videoUri);
mVideoView.requestFocus();
mVideoView.start();
}
Run Code Online (Sandbox Code Playgroud)
案例2:带有媒体控制器的VideoView -当我触摸VideoView时,应用程序崩溃.以下是该onActivityCreated方法的代码
/* Initialize the variables here, retrieve views and */
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// Assignment for the local variables
mVideoView = (VideoView) getView().findViewById(R.id.fragment_video_viewer_video);
mVideoView.setVideoPath("/sdcard/family_guy_test.3gp");//(videoUri); …Run Code Online (Sandbox Code Playgroud) 如果proguard用于混淆,Android应用程序崩溃.下面是堆栈跟踪.
Caused by: java.lang.IllegalArgumentException: Internal error:
TypeReference constructed without actual type information
at a.b.a.g.b.<init>(TypeReference.java:35)
at a.c.d.q.<init>(StdCouchDbInstance.java:22)
at a.c.d.p.<clinit>(StdCouchDbInstance.java:22)
Run Code Online (Sandbox Code Playgroud)
我正在使用该EktorpClient库(使用couchdb)并StdCouchDbInstance.java引用此文件并TypeReference.java在此包中.有关在Proguard配置文件中应该使用哪个选项来解决此问题的任何建议?
给定一个使用加载器从数据库加载(大量)数据的片段.
问题:
我有一个寻呼机适配器,当用户离开拿着它的标签时会破坏该片段,并在用户返回该标签时重新创建它.由于这种重新创建,每次都会创建一个新的加载器,并且每次都会加载数据.
题 :
为了避免每次创建片段时重新创建加载器,是否可以在片段getActivity.getSupportLoaderManager.initLoader(loaderId, null, false)的onActivityCreated方法中使用?
我试过它,测试它,似乎工作正常.但我不相信这是对的.