标签: android

Android - 单击一个后,保持ListView的项目突出显示

因此,我有一个包含2 ListView个小部件的活动,当您在第一个中选择一个值时,第二个将填充与第一个中的选择相关的值ListView.这个机制没有问题,但现在我希望用户选择保持突出显示.我已经阅读了与此主题相关的一个很好的问题,似乎有很多方法可以实现这一点但是在尝试了4-5之后,我仍然无法让它工作.

我已经ListView使用android:listSelector="#CCCCCC"XML属性在第二个工作了,但是一旦OnItemClickListener引入混合(这就像我第一次使用的那个ListView),这似乎被擦干净了.

到目前为止,这是我得到的:

自定义OnItemClickListener我发现浏览关于这个主题的各种答案(稍微修改它,以便它加载我的信息第二个ListView):

private class ItemHighlighterListener implements OnItemClickListener {

    private View oldSelection = null;

    public void clearSelection() {
        if(oldSelection != null) {
            oldSelection.setBackgroundColor(android.R.color.transparent);
        }
    }

    public void onItemClick(AdapterView<?> parent, View view, int pos, long id) {
        clearSelection();
        oldSelection = view;
        view.setBackgroundDrawable(view.getContext().getResources().getDrawable(R.drawable.list_selector));
        loadClubs(mXMLPortalOptions.getRegion(pos).getId());
        mClubList.setAdapter(new ArrayAdapter<String>(getApplicationContext(), R.layout.list_item_white, mClubs));
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的list_selector.xml档案:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_selected="true"><shape>
            <solid android:color="#CCCCCC" />
        </shape></item>

    <item android:state_selected="false"><shape>
            <solid …
Run Code Online (Sandbox Code Playgroud)

android listview highlighting android-listview

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

在转换期间,使新活动显示在旧活动之后

我想要实现的是覆盖启动活动动画.

动画应该给人留下旧活动位于新活动之上的印象,然后向下滑动并离开屏幕以显示新活动.我已经尝试了多种方式,比如使用overridePendingTransition(startAnim, exitAnim) 但问题是它们都在同一时间轴中生成动画.因此,overridePendingTransition(R.anim.hold, R.anim.exit_slide_down);您永远不会看到退出动画,因为新活动位于顶部.这可以使用框架实现吗?

在此输入图像描述

animation android android-activity

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

Android:RunOnUiThread vs AsyncTask

我相信Google建议开发人员使用AsyncTask.但是,我想知道它与使用"新线程"然后在性能和内存效率方面调用"RunOnUiThread"有何不同.

使用RunOnUithread的示例:

    // some code #1
    Thread t = new Thread("Thread1") {
        @Override
        public void run() {
            // some code #2
            runOnUiThread(new Runnable() {
                public void run() {
                    // some code #3 (that needs to be ran in UI thread)

                }
            });

        }
    };
    t.start();
Run Code Online (Sandbox Code Playgroud)

的AsyncTask:

onPreExecute() {
   // some code #1
}

doInBackground() {
   // some code #2
}

onPostExecute() {
   // some code #3
}
Run Code Online (Sandbox Code Playgroud)

有什么优点/缺点?

编辑:

我不是在寻找像'更容易看到代码','方便开发人员'等答案.我实际上是在寻找幕后的技术差异.

例如,Paul Nikonowicz在下面的回答就是我想要的答案.(但AsyncTask的行为相同)

performance multithreading android android-asynctask

36
推荐指数
3
解决办法
4万
查看次数

使用arm-linux-gnueabi-gcc交叉编译Android的静态C hello世界

我想使用arm-linux-gnueabi-gcc从C构建静态hello世界,而不是使用NDK独立工具链或代码源.

在Ubuntu ......

我做了以下事情:

sudo apt-get install gcc-arm-linux-gnueabi
Run Code Online (Sandbox Code Playgroud)

我创建了一个像这样的hi.c:

#include <stdio.h>

int main(int argc, char** argv) {
   printf("hello world\n");
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

我编译它像这样:

arm-linux-gnueabi-gcc -static hi.c -o hi 
Run Code Online (Sandbox Code Playgroud)

我在这样的模拟器上运行它:

adb push hi /data/hi
adb shell /data/hi
Run Code Online (Sandbox Code Playgroud)

但是,我得到了这个:

[1]   Illegal instruction     /data/hi
Run Code Online (Sandbox Code Playgroud)

我忘记了什么步骤?根据过去的经验,这"应该"有效,但我显然搞砸了.

c android arm cross-compiling android-ndk

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

Android ScrollView和屏幕底部的按钮

我想实现这个:ScrollView包含许多元素(ImageViews,TextViews,EditTexts等),然后在ScrollView之后的一些按钮(自定义ImageViews)总是出现在屏幕的底部.

如果我使用android:fillViewport ="true"属性,那么如果ScrollView的元素太大而不适合屏幕大小,那么按钮就会变得不可见.如果我使用android:Weight = 1属性,那么当屏幕很大并且它可以适合时,ScrollView只获得屏幕的50%(我希望按钮占用一小部分,大约10%).如果我将android:Weight设置为更大的值,那么按钮看起来非常小.

请帮忙!也许这是我忽略的简单事情,但我已经敲了几个小时!

android scrollview android-layout

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

Android电子邮件EditText验证

我有这个EditText定义:

<EditText 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent"
     android:inputType="textEmailAddress" 
     android:id="@+id/EmailText"/>
Run Code Online (Sandbox Code Playgroud)

请注意,EditText具有使用电子邮件地址规范定义的inputType.Android是否内置了任何内容来验证电子邮件地址输入类型,还是必须手动完成?它允许我输入无效数据,所以我很好奇它的目的.

谢谢.

java android

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

如何在对话框外发生单击时触发事件

我想知道如何解决我遇到的问题.

我有一个在活动中弹出的Dialog.对话框不会覆盖整个屏幕,因此活动中的按钮仍会显示.当对话框的边界外有触摸时,我可以轻松关闭对话框dialog.setCanceledOnTouchOutside(true);

但是,如果点击在Dialog的边界之外,我想要做的就是触发一个事件(例如,如果有人触摸主Activity上的按钮,它应该关闭Dialog并同时触发该事件).

android android-dialog

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

在每次Eclipse Debug/Run上自动清除LogCat?

我希望这是一个简单的任务,但我很惊讶没有找到答案.

让我澄清一下:

  • 我不想adb logcat -c手动打电话.事实上,我甚至没有使用命令行来查看LogCat,所以我认为这是不可能的(编辑:实际上,它是通过在单独的命令行中运行命令...但我没有想要这样做).我正在使用Eclipse来查看LogCat.

  • 我不想Clear Log每次都点击按钮.这就是我现在正在做的事情.

  • 我以编程方式或通过Eclipse的运行/调试配置来做,但是,每次我点击+ 运行我的Android项目时都想要一种自动清除LogCat 的方法.我的LogCat变得杂乱无章.+ 并不重要 - 这只是我调试的快捷方式.我想在Debug/Run上清除LogCat.CtrlF11CtrlF11

  • 我在Windows 7上使用Eclipse并使用Nexus One(不是模拟器)进行调试.

我试过了:

  • 修改调试/运行配置.(Project- > Properties- > Run/Debug Settings- > Edit Launch Configurations)从模拟器运行是唯一的添加方式Additional Emulator Command Line Options.但是我从实际的Android设备运行,所以我无法访问这些选项.

  • 建设者?我不知道如何使用它.(Project- > Properties- > Builders).每次运行时如何使用它来清除LogCat?

我开始认为当活动前台进程将光标移动到按钮并单击它时,我必须编写一个宏程序来挂钩Ctrl+ .我想自动清除LogCat要求太多了.F11eclipse.exeClear Log

java eclipse android logcat android-logcat

36
推荐指数
1
解决办法
6280
查看次数

Android编程布局是否以编程方式?

在iOS中,我非常喜欢删除故事板并使用制图框架将所有内容放在代码中.这是从Cartography的github中偷来的:

constrain(view1, view2) { view1, view2 in
    view1.width   == (view1.superview!.width - 50) * 0.5
    view2.width   == view1.width - 50
    view1.height  == 40
    view2.height  == view1.height
    view1.centerX == view1.superview!.centerX
    view2.centerX == view1.centerX

    view1.top >= view1.superview!.top + 20
    view2.top == view1.bottom + 20
}
Run Code Online (Sandbox Code Playgroud)

Android有什么相同的功能吗?似乎新的Constraint Layout是朝着正确方向迈出的一步,但我想以编程方式进行.

android android-layout

36
推荐指数
1
解决办法
3万
查看次数

确保已启用"Google Maps Android API v2".我在尝试实施Google地图时遇到此错误

我正在研究谷歌地图,我收到此错误.我做了以下事情:

  1. 得到了我的sha1指纹.

  2. 注册我的项目并获得我的项目密钥.

我不知道如何启用谷歌地图Android API v2启用,因为我尝试的所有链接都是旧的,谷歌改变了它的网站设计.请帮我.我已经浪费了很多时间在这上面.

我的Logcat:

在此输入图像描述

Authorization failure.  Please see developers.google.com/maps/documentation/android-api/start for how to correctly set up the map.
E/Google Maps Android API: In the Google Developer Console (console.developers.google.com)


 Ensure that the "Google Maps Android API v2" is enabled.
 Ensure that the following Android Key exists:
   API Key: AIzaSyBK8rKr9lCRLhzv68I4Q26G9pHHO******
Run Code Online (Sandbox Code Playgroud)

android google-maps google-maps-android-api-2

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