小编San*_*eer的帖子

如何从styles.xml以编程方式检索样式属性

目前我正在使用WebView或TextView来显示来自我的某个应用程序中的Web服务的一些动态数据.如果数据包含纯文本,则它使用TextView并从styles.xml应用样式.如果数据包含HTML(主要是文本和图像),则使用WebView.

但是,这个WebView没有样式.因此它看起来与通常的TextView有很大的不同.我已经读过,只需将一些HTML直接插入数据中,就可以在WebView中设置文本样式.这听起来很容易,但我想使用我的Styles.xml中的数据作为此HTML中所需的值,因此如果我更改样式,我将不需要更改两个位置上的颜色等等.

那么,我怎么能这样做呢?我做了一些广泛的搜索,但我发现无法从styles.xml中实际检索不同的样式属性.我在这里遗漏了什么或是否真的无法检索这些值?

我试图从中获取数据的样式如下:

<style name="font4">
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textSize">14sp</item>
    <item name="android:textColor">#E3691B</item>
    <item name="android:paddingLeft">5dp</item>
    <item name="android:paddingRight">10dp</item>
    <item name="android:layout_marginTop">10dp</item>
    <item name="android:textStyle">bold</item>
</style>
Run Code Online (Sandbox Code Playgroud)

我主要对textSize和textColor感兴趣.

xml android styles

74
推荐指数
3
解决办法
5万
查看次数

android'不被识别为内部或外部命令

我试图获得新的GCM服务为我工作,所以我一直在演示以下如下所述:http://developer.android.com/guide/google/gcm/demo.html

到目前为止,一切运作良好.但是,我现在应该ant使用命令行来构建文件,这就是事情停止工作的地方.

出于某种原因,这个命令$ android update project --name GCMDemo -p . --target android-16给了我一个非常好的

'android' is not recognized as an internal or external command,
operable program or batch file.
Run Code Online (Sandbox Code Playgroud)

通常情况下,这可以通过快速Google搜索轻松修复,但我还没有找到任何其他用户遇到此问题.有人能告诉我问题是什么吗?我有根据的猜测是我需要将Android工具文件夹添加到我的工具中PATH,但我宁愿先确定.

command-line android

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

屏幕关闭时检查音量按钮的使用情况

对于这个问题,我将引用另一个对他们的问题没有回应的用户:

我编写了一个Andoid应用程序,它将硬件音量按钮用于其他目的.

如果应用程序运行且可见,它可以正常工作,但是当我关闭屏幕或让它超时时,按钮单击不会进入我的处理程序.

有人知道屏幕关闭时是否有办法检测这些按钮点击?来源:AV695的问题

我正在使用一个使用音量按钮的应用程序,但正如该用户也注意到的那样,一旦屏幕关闭,使用onKeyPress检查按钮的正常行为就会停止工作.这是因为活动在屏幕上暂停了.

有没有办法在屏幕关闭时保持活动运行,或者在屏幕关闭时检查音量按钮的使用情况?我之前尝试过使用服务,但是不可能检查Commonsware所指出的音量键.

android volume button

13
推荐指数
1
解决办法
7354
查看次数

更改子项后,ScrollView不会直接调整大小

关于ScrollView调整大小,我遇到了一个非常恼人的问题,我的可能解决方案已经用完了.

我有一个FragmentPager包含几个不同的片段,其中一个片段有一个ScrollView.带有ScrollView的Fragment由一个Spinner和一个包含LinearLayout的ScrollView组成,其中包含多行其他视图(如SeekBars,Buttons,Edittexts).根据Spinner中选择的选项,ScrollView会显示不同的视图.为此,一些视图的可见性变为Gone,而其他视图则变为Visible.这很好用,除了ScrollView在使用Spinner选择不同选项时似乎没有正确调整大小的事实.

当ScrollView充满了视图,因此可滚动时,如果用户选择的选项显示填充ViewPort所需的Viewsthan较少,则ScrollView仍会滚动.当用户再次选择旧选项时,ScrollView现在无法滚动,因为它采用了上一个选项所需的大小.当用户再次选择SAME选项时,ScrollView突然可以滚动,因为它现在调整为所需的实际大小.

这里发生了什么?更好的是,我该如何解决这个烦人的问题呢?

我的布局:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/control_scroll"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:background="#99000000"
    android:fillViewport="true" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="20dp"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#DD000000"
            android:gravity="bottom"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/lamp_choose_tv"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="2dp"
                android:paddingLeft="5dp"
                android:text="@string/choose_lamp_text"
                android:textColor="#FFFFFF"
                android:textSize="14sp" />
        </LinearLayout>

        <Spinner
            android:id="@+id/lamp_select_spinner"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:textColor="#FFFFFF" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#DD000000"
            android:gravity="bottom"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/lamp_settings_tv"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="2dp"
                android:background="#44000000"
                android:paddingLeft="5dp"
                android:text="@string/lamp_settings_text"
                android:textColor="#FFFFFF"
                android:textSize="14sp" />
        </LinearLayout>
        <!-- Lamp name -->

        <LinearLayout
            android:id="@+id/naam_bar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="bottom"
            android:paddingBottom="3dp"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:paddingTop="3dp" …
Run Code Online (Sandbox Code Playgroud)

android resize scrollview

13
推荐指数
1
解决办法
8324
查看次数

PreferenceFragment透明显示

PreferenceFragment在ActionBar中选择Preferences选项后试图显示.但是,在用PreferenceFragment您更换当前内容后,您可以看到它下面的旧内容.在中,您可以直接看到偏好.

我在这里错过了什么吗?我使用了我自己的一本书中的一个例子,它没有使用任何布局文件作为首选项.你需要那些吗?

二手代码:

操作栏菜单

private boolean MenuChoice(MenuItem item) {
        switch (item.getItemId()) {
        case 0:
            FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction fragmentTransaction =
            fragmentManager.beginTransaction();
            ReaderPreferences prefs = new ReaderPreferences();
            fragmentTransaction.replace(android.R.id.content, prefs);
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();
            return true;

        }
        return false;
    }
Run Code Online (Sandbox Code Playgroud)

PreferenceReader

public class ReaderPreferences extends PreferenceFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // --load the preferences from an XML file---
        addPreferencesFromResource(R.xml.preference);
    }
  }
Run Code Online (Sandbox Code Playgroud)

实际结果:

在此输入图像描述

如您所见,您可以直观地了解我的偏好.我做错了什么?

android android-preferences android-fragments

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

Drawables在被文件夹中的其他人替换后不会改变

我为我的应用程序创建了一个新的主题集,并决定我不再需要旧的主题了.所以,我将我的新图像文件复制到旧文件上,取而代之.我为所有drawables文件夹做了这个.然后我重新创建R.java以防万一,并重建我的应用程序.

出于某种原因,它正在拾取旧图像并显示它们.好吧,我想,必须是内存/缓存中的东西.我只是擦拭我的模拟器图像,然后再试一次.

这样,应用程序仍然使用旧图片.我以为我一定是犯了错误并在Eclipse中检查了图像,但它显示了那里的新图像.然后我采取了激烈的事情并删除了drawables文件夹.当然这导致我的项目吓坏了所以我很快添加了所需的新图片并重建项目.没有出现任何错误,所有图片在Eclipse中都出现了变化.

但是在运行应用程序时,旧图片仍然显示.除了在应用程序的某些部分.在我使用的70张左右的图片中,现在只有2张图片显示了新版本.所有其他的仍然显示旧图片.

这可以发生什么?我尝试重新启动我的模拟器,重新刷新项目,使用旧项目作为源创建一个新项目,重新启动手机,在安装应用程序之前擦除所有应用程序数据,删除所有图像并用新文件替换它们,但似乎没有工作.

包含新图像的应用程序如何在完全新鲜的模拟器上运行,如何仍然显示至少提前一小时删除的图像?

android image drawable

8
推荐指数
2
解决办法
7762
查看次数

File.renameTo()返回true,但文件尚未重命名

我正在尝试为我的录音机创建一个文件,但这个文件不断获得一个随机名称.因为这很难使用,所以我希望在使用更有意义的名称创建文件后重命名该文件.

但是,即使renameTo返回true,文件也未重命名.

我在这里做错了吗?

outfile = File.createTempFile(amount + "_alarmsave", ".3gp",
                    storageDir);

            System.out.println("Old file: "+outfile.getAbsolutePath());

            File newFile = new File(outfile.getParent(), "alarmsave_" + amount + ".3gp");

            System.out.println("new file: "+newFile.getAbsolutePath());

            if(outfile.renameTo(newFile)){
                System.out.println("Succes! Name changed to: " + outfile.getName());
            }else{
                System.out.println("failed");
            }
Run Code Online (Sandbox Code Playgroud)

LogCat输出:

01-13 18:27:40.264: I/System.out(22913): Old file: /mnt/sdcard/Personal Alarm/13_alarmsave1623959934.3gp
01-13 18:27:40.264: I/System.out(22913): new file: /mnt/sdcard/Personal Alarm/alarmsave_13.3gp
01-13 18:27:40.284: I/System.out(22913): Succes! Name changed to: 13_alarmsave1623959934.3gp
Run Code Online (Sandbox Code Playgroud)

android file file-rename

8
推荐指数
1
解决办法
5803
查看次数

膨胀后碎片不显示[固定,但......]

我正在尝试创建一个可以在我的所有活动中看到的音乐播放器.要做到这一点,我打算使用Fragment一些你之前建议我的.

由于我没有任何经验Fragments,我决定首先在"填充"活动中实现一个片段.我创建了一个只包含一个按钮和一些文本的简单片段,并尝试在我的填充活动中对其进行充气.

但是,在充气后这个片段没有显示出来.消息确实打印到LogCat,告诉我片段已经膨胀.

我很确定我错过了什么,但由于我没有这方面的经验,我找不到一个很好地解释如何做到这一点的教程,我不知道我错过了什么.

音乐播放器片段

public class AppMusicPlayer extends Fragment{


     @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            // Inflate the layout for this fragment
         System.out.println("fragment added");
            return inflater.inflate(R.layout.musicplayer_main, container, false);
        }


}
Run Code Online (Sandbox Code Playgroud)

音乐播放器布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >


    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This is the fragment you're looking for" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

填充活动

public class Filler extends FragmentActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) …
Run Code Online (Sandbox Code Playgroud)

android fragment

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

检查是否通过用户交互或屏幕调暗来调用onStop

我有一个媒体播放器,只要用户关闭应用程序就停止播放,可以通过按主页按钮,使用后退按钮或只是打开另一个应用程序.为了得到这种行为,我onStop()在我的主要活动中添加了一个告诉我MediaPlayer(在服务中)停止播放音乐的活动.

但是,我希望音乐在屏幕变暗时继续播放,无论是使用电源按钮关闭屏幕,还是仅通过屏幕自动调光.

现在,当屏幕变暗时,播放器也会停止播放,这意味着onStop()方法也会被调用.

如何检查onStop()是否被屏幕调用调用?

我已经PARTIAL_WAKELOCK在我的MediaPlayer对象上应用了一个,据我所知,应该可以让玩家在屏幕关闭后继续运行.

我是否还需要在主要活动中添加部分唤醒锁?


刚刚应用了PARTIAL_WAKELOCK我的主要活动,以及我的媒体播放器.此时,屏幕不再自动关闭,当用户按下电源按钮时,音乐仍然停止.

显然,这不符合我的想法.

有没有办法实现我正在寻找的行为?

android media-player android-wake-lock

6
推荐指数
1
解决办法
1187
查看次数

获取画廊从特定位置开始

我正在为我的应用创建一个图库部分,用于显示X个图像.这些图像是从外部服务器加载的.向用户显示GridView包含图像的缩略图,并且在点击这些缩略图时Gallery打开-view,其以全屏模式显示图像.An ArrayList用于保存String包含指向这些图像的链接的对象.在getView我的方法中,AdapterArrayList用于查看需要显示哪个图像.

到目前为止这个工作正常,但是当用户选择不同的图像然后第一个图像时,我遇到了问题GridView.例如,当用户单击第7个图像时,Gallery显示第7个图像.但是当用户向右翻转以查看之前的图像(第6张图像及之前的图像)时,没有任何反应.当他向左边看到即将到来的图像时,用户会看到列表中的第2项,然后是第3项,然后是第4项等.

显然,Gallery我认为无论我首先提供的是什么图像,实际上是列表中的第一个项目,并且开始显示之后的所有内容,如果图像实际上是第一个,它应该具有.但是,Gallery应该将图像显示为它所在的实际位置GridView.我怎样才能实现这样的目标?position当我点击我的时候GridView,我已经尝试过搞乱,但这只会导致我上面描述的行为.

这是我用于此的代码:

PhotoFullView(图库的库和适配器)

package com.mobowski.appfrag.json.pictures;

import java.io.BufferedInputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;

import com.mobowski.appfrag.R;

import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.Display;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;

public class PhotoFullView extends Activity {
    /** Called when the activity …
Run Code Online (Sandbox Code Playgroud)

android position gallery

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

您可以在替换时为片段添加额外内容吗?

我目前有一个应用程序Intents在开始活动之前严重依赖并给予他们额外的东西.在调用webservice时使用附加功能,而webservice又提供需要显示的内容

我正在尝试将该模型转换Fragment为我在屏幕底部有静态(我们称之为播放器)的模型,而另一个模型Fragment(将其称为内容)将在其上方显示主要内容.通过在主屏幕上选择选项,将通过替换内容来显示其他内容Fragment.

但是,这些新产品Fragments目前Intents依赖于额外产品.有没有办法替换一个Fragment新的,但仍然能够添加额外的东西?

如果是这样,假设我有以下代码:

FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        ft.replace(R.id.fragment_holder, new MusicAlbumList(), "albumlist");
        ft.commit();
Run Code Online (Sandbox Code Playgroud)

如何将附加内容添加到MusicAlbumList?

如果那是不可能的,在由于缺少基本数据而强制关闭之前,我如何将当前通过额外内容传递的数据导入我的新片段?

android extras android-intent android-fragments

2
推荐指数
1
解决办法
4514
查看次数