小编Mdl*_*dlc的帖子

将Assets文件读为字符串

我想将资产中的文件内容作为字符串读取.例如,位于的文本文档src/main/assets/

原始问题
我发现这个问题主要用作阅读资产文件的"FAQ",因此我总结了上述问题.以下是我最初的天真问题

我正在尝试将资源文件作为字符串读取,我在这里尝试了20个答案,但它们对我不起作用.

我的资产文件夹中有一个文件:data.opml,我必须将内容放在一个字符串中.我发送它像:

 OPML.importFromFile(string, MainTabActivity.this);
Run Code Online (Sandbox Code Playgroud)

收到它像:

 importFromFile(String filename, Context context); 
Run Code Online (Sandbox Code Playgroud)

有效的东西(但它不是资产文件):

 OPML.importFromFile(new StringBuilder(Environment.getExternalStorageDirectory().toString()).append(File.separator).append(fileNames[which]).toString(),MainTabActivity.this);
Run Code Online (Sandbox Code Playgroud)

我试过了:

 AssetFileDescriptor descriptor = getAssets().openFd("data.opml");
 FileReader reader = new FileReader(descriptor.getFileDescriptor());
 And also:
 InputStream input = getAssets().open("data.opml");
 Reader reader = new InputStreamReader(input, "UTF-8");
Run Code Online (Sandbox Code Playgroud)

Maby我做错了什么,但它只是不起作用,因为它项目给出错误(分别:OPML不能用于参数文件阅读器和阅读器),如果有人知道如何做到这一点,我将非常感激!

string android

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

检测片段何时可​​见

为什么不重复:建议的帖子仅适用于viewpager,或者调用onResume时.

我有一个listfragment和一个detailfragment.单击列表项时将打开详细信息片段.我通过隐藏listfragment并显示detailfragment来实现这一目标.当用户返回时,他返回到listfragment.

如何检测用户何时返回我的片段,或者我的片段何时可​​见?

请注意,我想用.hide()和show(),以保持和我在寻找一个听众或onVisible检查的片段变成可见的,而不是来检查的方法,如果它是可见的.

android android-fragments

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

Javascript检查if(txt)文件是否包含字符串/变量

我想知道是否可以用javascript打开文本文件(位置类似于:http://mysite.com/directory/file.txt)并检查文件是否包含给定的字符串/变量.

在php中,这可以通过以下方式轻松完成:

$file = file_get_contents("filename.ext");
if (!strpos($file, "search string")) {
    echo "String not found!";
} else {
    echo "String found!";
}
Run Code Online (Sandbox Code Playgroud)

有没有,最好是简单的方法来做到这一点?(我在nodejs,appfog上的.js文件中运行"function",如果可能的话).

javascript node.js

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

颜色/可绘制更改应用于具有相同背景(颜色)的所有视图[棉花糖]

我最近将手机更新为Android Marshmallow并在其上运行我现有的应用程序,但注意到颜色行为的差异:当将更改应用于视图的背景(可绘制)时,所有共享相同背景的视图(参考)将也适用相同的变化.以前,情况并非如此.

示例
在此示例中,我有两个具有相同背景颜色的视图,我想更改其中一个视图的alpha级别.

首先我们在布局中定义视图:

    <LinearLayout
        android:id="@+id/test1"
        android:orientation="horizontal"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="@color/testColor2">

    </LinearLayout>

    <LinearLayout
        android:id="@+id/test2"
        android:orientation="horizontal"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="@color/testColor1"
        android:layout_marginLeft="5dp">
    </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

两个视图共享相同的背景颜色或drawable:

<color name="testColor1">#3F51B5</color>
<color name="testColor2">#3F51B5</color>
Run Code Online (Sandbox Code Playgroud)

结果如下:
在此输入图像描述

现在我们要改变两个背景中的一个,如下所示:

    LinearLayout test1 = (LinearLayout) findViewById(R.id.test1);
    LinearLayout test2 = (LinearLayout) findViewById(R.id.test2);
    test1.getBackground().setAlpha(80);
Run Code Online (Sandbox Code Playgroud)

结果如下:
在此输入图像描述

然而,期望和预期的结果显然是这样的:
在此输入图像描述

此处下载示例项目.

一些但是:

  • 通过XML设置Alpha级别时,此行为不适用.
  • 如果两个视图在colors.xml中引用不同的颜色定义并不重要(如示例中所示),请在视图的xml文件中直接引用两者的相同颜色定义具有相同的颜色(十六进制).

问题
如何在不影响共享相同背景的其他视图的情况下更改视图的背景.优选地,同时仍然能够使用直接引用颜色的xml文件中定义的颜色的背景

android

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

通过单击外部键盘解除键盘后,AdjustResize不起作用

我有一个WebView(在带有SlidingTabLayout的ViewPager中的片段内).

使用WebView进行输入时,我希望调整布局以确保输入可见.

单击WebView中的文本输入时,将显示软键盘并调整布局大小.我可以输入我的文本并使用软键盘的返回按钮提交或使用后退按钮取消输入.在此之后,键盘消失,布局调整大小.正确的AdjustResize行为.

但是,当通过在软键盘外部单击来解除键盘时(例如,在Google中输入查询并按下WebView中的"搜索"按钮)键盘会隐藏,并且布局调整大约需要2-3秒(留下空白区域)在我的布局底部2-3秒).之后,在选择textinput时,键盘将覆盖WebView(adjustPan).

如何确保通过按WebView关闭键盘时,adjustResize可以保持行为.

我尝试重新设置AdjustResize(例如来自onTouch),但这没有效果:

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Run Code Online (Sandbox Code Playgroud)

我也尝试过以下解决方案,但这没有任何改变.

此外,我认为这可能不是一个焦点问题(因为键盘确实出现了,webview确实响应).我确实从我的观点中提出焦点:

    webView.setFocusable(true);
    webView.setFocusableInTouchMode(true);
Run Code Online (Sandbox Code Playgroud)

keyboard android webview

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

How can I show a custom "webpage not available" page in Android WebView?

I'm out to do something when no connection is available page/alert in WebView (e.g. load a local html page or alert). I've to play with Prevent WebView from displaying "web page not available" but without any success. Any suggestions would be appreciated.

android webview

5
推荐指数
1
解决办法
8033
查看次数

为Android应用程序创建一个可解析的JSON文件

我正在尝试使用我的Android应用程序在我的网络服务器上获取json文件中的图像列表.但它们没有被阅读,我一定是犯了一些错误,可能是在我的json文件中.

我正在尝试创建一个我的应用程序可以读取的.Json文件,下面列出了我的一个实验性JSON文件,但它不起作用.

由于我对Json不是很有经验,我想知道其他人是否可能知道如何创建我的应用程序可以解析的JSON文件.

我的实验性json文件:

{
"Wallpaper": [
    {
        "id": "1",
        "title": "Clouds",
        "thumburl": "http://url.com/images/Pages/Apps/apps.png",
        "previewurl": "http://url.com/images/Pages/Apps/apps.png",
        "url": "http://url.com/images/Pages/Apps/apps.png",
        "text": "Sky"
    }
]
}
Run Code Online (Sandbox Code Playgroud)

我的代码:

 import someimportsandotherstuff

 import de.dan_nrw.android.scroid.Wallpaper;


 public final class JsonWallpaperParser implements IWallpaperParser {

/**
 * Creates a new instance of JsonWallpaperParser.
 */
JsonWallpaperParser() {
    super();
}


/* (non-Javadoc)
 * @see de.dan_nrw.boobleftboobright.IWallpaperParser#parse(java.lang.String)
 */
@Override
public List<Wallpaper> parse(String data) throws ParseException {
    try {
        JSONArray array = new JSONArray(data);
        List<Wallpaper> wallpapers = new ArrayList<Wallpaper>();

        for (int i = 0; i …
Run Code Online (Sandbox Code Playgroud)

android json

5
推荐指数
2
解决办法
2899
查看次数

Android SQL - 检查数据库中是否已存在整行

我正在尝试创建一个简单的收藏夹应用程序,您可以在其中保留您的收藏页面(例如,来自网络).

假设我的数据库中包含以下数据

Title    | URL     | TAG      |
-------------------------------
Hey       Ho.com    Site
Jo        Jo.com    Image
Jo        Mo.com    Image
Run Code Online (Sandbox Code Playgroud)

现在我想确保用户不会将同一页面添加两次,因此我将检查该值是否已存在.但我需要用户不会将站点添加到已添加的表中.

所以我想说我会尝试添加:

Title    | URL     | TAG      |
-------------------------------
Jo        Mo.com    Image
Run Code Online (Sandbox Code Playgroud)

这将返回true("检查行是否存在",因为已经存在相同的行).

但如果我想尝试添加:

Title    | URL     | TAG      |
-------------------------------
Jo        Go.com    Image
Run Code Online (Sandbox Code Playgroud)

它会返回false(虽然标题已存在),因为没有相同的行.

这是我将数据添加到数据库的代码:

public long createNote(String title, String url, String rn) {
    ContentValues initialValues = new ContentValues();
    initialValues.put(KEY_TITLE, title);
    initialValues.put(KEY_URL, url);
    initialValues.put(KEY_RN, rn);

    return mDb.insert(DATABASE_TABLE, null, initialValues);
Run Code Online (Sandbox Code Playgroud)

如何检查数据库中是否已存在行?

database android

5
推荐指数
2
解决办法
5664
查看次数

Java应用程序在命令提示符下执行命令

我想知道,有没有办法让java应用程序打开命令提示符(cmd.exe)并输入/执行命令,最好不要让用户看到命令提示符窗口.

如果有人知道可以执行此操作的示例应用程序或代码,您的答案将不胜感激!

java command

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

为什么我们(有)使用不同的启动器图标(xhdpi,hdpi等)

我想知道,为什么我们在android中使用不同的启动器图标(大小).目前,您"有"将图标调整为:

LDPI - 36 x 36
MDPI - 48 x 48
HDPI - 72 x 72
XHDPI - 96 x 96
Run Code Online (Sandbox Code Playgroud)

并将它们放在所需的文件夹中.但是,如果你只在你的Android应用程序中放置一个xhdpi图标,并且你只是将ldpi,mdpi和hdpi文件夹留空,那真的很重要吗?

如果您在mdpi设备上尝试使用此配置的应用程序(仅限xhdpi图标),则会自动使用xhdpi图标(我假设设备会自动缩放图标),看起来很正常.

那么什么会阻止我们只制作一个xhdpi图标.它仍然会为每个设备产生一个清晰的应用程序图标(除了xxhdpi ofcourse).

android android-image android-icons

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