标签: android

返回ListView时保持/保存/恢复滚动位置

我有一个很长ListView的用户可以在返回上一个屏幕之前滚动.当用户ListView再次打开它时,我希望列表滚动到之前的相同点.关于如何实现这一点的任何想法?

android scroll scroll-position android-listview

388
推荐指数
8
解决办法
20万
查看次数

获取上下文的各种方法之间有什么区别?

在我看过的各种Android代码中:

 public class MyActivity extends Activity {
    public void method() {
       mContext = this;    // since Activity extends Context
       mContext = getApplicationContext();
       mContext = getBaseContext();
    }
 }
Run Code Online (Sandbox Code Playgroud)

但是,我找不到任何合适的解释,哪些更好,以及在什么情况下应该使用.

关于这方面的文件的指示,以及关于如果选择了错误的可能会破坏的指导,将不胜感激.

android android-context

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

Android Spinner:获取所选的项目更改事件

如何在所选项目更改时为Spinner设置事件侦听器?

基本上我想要做的是类似于这样的事情:

spinner1.onSelectionChange = handleSelectionChange;

void handleSelectionChange(Object sender){
    //handle event
}
Run Code Online (Sandbox Code Playgroud)

events android spinner android-spinner

385
推荐指数
9
解决办法
46万
查看次数

如何删除Android上ListViews之间的行?

我正在使用两个ListView这样的:

<ListView
   android:id="@+id/ListView"
   android:text="@string/Website"
   android:layout_height="30px"
   android:layout_width="150px"
   android:scrollbars="none"
   android:transcriptMode="normal"/>
<ListView
   android:id="@+id/ListView1"
   android:text="@string/Website"
   android:layout_height="30px"
   android:layout_width="150px"
   android:scrollbars="none"
   android:transcriptMode="normal"/>
Run Code Online (Sandbox Code Playgroud)

两者之间有一条空白行ListView.我该如何删除它?

android listview android-layout

384
推荐指数
11
解决办法
18万
查看次数

片段MyFragment未附加到Activity

我创建了一个代表我的问题的小测试应用程序.我正在使用ActionBarSherlock来实现带有(Sherlock)Fragments的选项卡.

我的代码: TestActivity.java

public class TestActivity extends SherlockFragmentActivity {
    private ActionBar actionBar;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setupTabs(savedInstanceState);
    }

    private void setupTabs(Bundle savedInstanceState) {
        actionBar = getSupportActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        addTab1();
        addTab2();
    }

    private void addTab1() {
        Tab tab1 = actionBar.newTab();
        tab1.setTag("1");
        String tabText = "1";
        tab1.setText(tabText);
        tab1.setTabListener(new TabListener<MyFragment>(TestActivity.this, "1", MyFragment.class));

        actionBar.addTab(tab1);
    }

    private void addTab2() {
        Tab tab1 = actionBar.newTab();
        tab1.setTag("2");
        String tabText = "2";
        tab1.setText(tabText);
        tab1.setTabListener(new TabListener<MyFragment>(TestActivity.this, "2", MyFragment.class));

        actionBar.addTab(tab1);
    }
}
Run Code Online (Sandbox Code Playgroud)

TabListener.java

public class TabListener<T extends SherlockFragment> …
Run Code Online (Sandbox Code Playgroud)

android android-fragments actionbarsherlock

384
推荐指数
7
解决办法
23万
查看次数

错误:找不到默认活动

我将IntelliJ Idea 12.0.4升级到12.10.

现在,我的Android项目中的所有模块都会出错:

错误:找不到默认活动

我恢复到12.0.4并且它有效.

有任何想法吗 ??我认为它可能与一些未安装的插件有关,因为唯一的其他东西可能是本地配置,但我删除了配置文件夹以确认,并没有改变任何东西.

android intellij-idea android-studio

384
推荐指数
20
解决办法
46万
查看次数

通过Android上的意图启动Google地图路线

我的应用需要显示从A到B的Google地图路线,但我不想将Google地图放入我的应用程序 - 相反,我想使用Intent启动它.这可能吗?如果有,怎么样?

java android google-maps android-intent

382
推荐指数
11
解决办法
29万
查看次数

如何在将应用程序发布到Google Play之前删除所有调试日志记录调用?

据谷歌称,在发布我的Android应用程序之前,我必须" 停用源代码中对Log方法的任何调用 ".摘录自出版物清单的第5部分:

在构建应用程序以进行发布之前,请确保停用日志记录并禁用调试选项.您可以通过删除源文件中对Log方法的调用来停用日志记录.

我的开源项目很大,每次发布时手动执行都很痛苦.此外,删除日志行可能很棘手,例如:

if(condition)
  Log.d(LOG_TAG, "Something");
data.load();
data.show();
Run Code Online (Sandbox Code Playgroud)

如果我对日志行进行注释,则条件适用于下一行,并且可能不会调用load().这种情况是否足够罕见,我可以决定它不应该存在?

这是在官方清单上,所以我想很多人会定期这样做.
那么,如何有效但安全地删除所有日志行?

logging android proguard android-log

381
推荐指数
12
解决办法
16万
查看次数

Handler vs AsyncTask vs Thread

我稍微感到困惑之间的差异Handlers,AsyncTaskThreads在Android中.我在stackoverflow中阅读了很多博客和问题.

Handler是后台线程,提供您与UI进行通信.例如,更新进度条应该通过Handler.使用处理程序可以获得优势MessagingQueues,因此,如果要计划消息或更新多个UI元素或具有重复任务.

AsyncTask类似的,实际上它们使用Handler但不在UI线程中运行,因此它对于获取数据很有用,例如获取Web服务.稍后您可以与UI进行交互.

Thread然而,无法与UI交互,提供更多"基本"线程,你错过了所有的抽象AsyncTask.

但是,我想在服务中运行套接字连接.应该在处理程序或线程中运行,还是在AsyncTask?根本不需要UI交互.它在我使用的性能方面有所不同吗?

与此同时,文件已得到重大改进.

multithreading android android-asynctask android-handler

379
推荐指数
8
解决办法
13万
查看次数

如何使用新的Gradle Android Build System手动包含外部aar包

我一直在尝试新的Android构建系统,我遇到了一个小问题.我已经编译了自己的ActionBarSherlock的aar包,我称之为'actionbarsherlock.aar'.我正在尝试做的实际上是使用这个aar来构建我的最终APK.如果我使用编译项目(':actionbarsherlock')将整个ActionBarSherlock库作为android-library模块包含到我的主项目中,我可以成功构建而没有任何问题.

但我的问题是,我想将该依赖项作为aar文件包手动提供,如果我想要一个JAR,那么我似乎无法弄清楚如何正确地将它包含到我的项目中.我试图使用编译配置,但这似乎不起作用.我继续在编译期间找不到符号,这告诉我来自aar包的classes.jar没有包含在类路径中.

有谁知道手动将aar包作为文件包含的语法?

的build.gradle

buildscript {

 repositories {
     mavenCentral()
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:0.4'
  }
}
apply plugin: 'android'

repositories {
   mavenCentral()
}
dependencies {
    compile files('libs/actionbarsherlock.aar')
}

android {
    compileSdkVersion 15
    buildToolsVersion "17.0"
}
Run Code Online (Sandbox Code Playgroud)

编辑:所以答案是它目前不支持,如果你想跟踪它,这是问题.

编辑:目前仍然没有直接支持,最好的替代方案似乎是来自@RanWakshlak的建议解决方案

编辑:使用@VipulShah提出的语法也更简单

android gradle build.gradle android-gradle-plugin

379
推荐指数
16
解决办法
29万
查看次数