标签: android

使用Android Studio/Gradle从git describe自动版本化Android项目

我已经进行了广泛的搜索,但可能由于Android Studio和Gradle的新功能,我还没有找到任何关于如何执行此操作的说明.我想基本上完成本文中描述的内容,但使用Android Studio,Gradle和Windows而不是Eclipse和Linux.

git android auto-versioning gradle android-build

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

如何在没有锁定android中的应用程序UI的情况下等待10秒钟

我遇到了问题,我想等待10秒,因为我希望我的应用程序在10秒后启动下面的代码,但不会阻止该人点击应用程序中的任何其他内容(调用Thread.sleep();).

try {
    Log.v("msg", "WAIT CheckFrequencyRun");
    Thread.sleep(10000); // giving time to connect to wifi
    
   } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   //if no network
   if(wifiManager.getConnectionInfo().getNetworkId()==-1){
    //stop wifi
    wifiManager.setWifiEnabled(false);
    Log.v("msg", "no connection");
    handler.postDelayed(this, checkInterval);
   }
   //else connection
   else{
    Log.v("msg", "connection");
    onDestroy();
   }
Run Code Online (Sandbox Code Playgroud)

java android wait

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

OptionsMenu中的SearchView不是全宽

当用户点击搜索图标时,我有一个可在我的OptionsMenu中扩展的SearchView.但是,它仅在其他OptionsMenu图标中的可用空间内扩展.在宽屏幕上这很好,但是在狭窄的空间内,只有在搜索框中显示5-10个字符的空间.我希望它覆盖其他图标,例如它适用于Android Contacts应用程序.目前,我正在建设targetSdkVersion = 17.希望我错过了一些简单的东西:)

(注意后来添加:到目前为止,我发现可行的唯一解决方案是在我想扩展搜索图标时隐藏所有菜单图标.这在概念上很简单.但它很混乱,因为在恢复隐藏的图标时,必须要去通过一堆逻辑来确定哪些要恢复,或保持状态变量等等)

这是OptionsMenu的项目xml:

<item
  android:id="@+id/menu_search_shallow"
  android:title="Search Current Folder"
  android:icon="@drawable/ic_btn_search"
  android:showAsAction="always|collapseActionView"
  android:actionViewClass="android.widget.SearchView" />
Run Code Online (Sandbox Code Playgroud)

我的主要活动代码中也有:

@Override
public boolean onCreateOptionsMenu (Menu menu)
{
  getMenuInflater().inflate(R.menu.nav_menu, menu);
  this.optionsMenu = menu;

  MenuItem searchItem = menu.findItem (R.id.menu_search_shallow);
  searchItem.setOnActionExpandListener (this);
  SearchView searchView = (SearchView) searchItem.getActionView();
  searchView.setQueryHint (getString (R.string.search_shallow_hint));

  searchItem = menu.findItem (R.id.menu_search_deep);
  searchItem.setOnActionExpandListener (this);
  searchView = (SearchView) searchItem.getActionView();
  searchView.setQueryHint (getString (R.string.search_deep_hint));
}
Run Code Online (Sandbox Code Playgroud)

@Override
public boolean onMenuItemActionExpand(MenuItem item) 
{
  SearchView searchView = (SearchView) item.getActionView();
  searchView.setOnQueryTextListener (this);
  return true;
}

@Override
public boolean onMenuItemActionCollapse(MenuItem item) 
{ …
Run Code Online (Sandbox Code Playgroud)

android options-menu searchview

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

双窗格首选项屏幕的问题

问题
将设备从单窗格纵向旋转PreferenceScreen到双窗格环境PreferenceScreen,导致横向仅显示为单窗格.查看标题屏幕时不会发生.

设置
仅适用于ICS及以上版本.我有一个PreferenceActivity负载preference-headers.每个标题链接一个Fragment,然后加载一个PreferenceScreen.相当运行的mil.

细节
一切运作良好,直到我注意到Android只会自动切换到某个屏幕的双窗格外观.经过一些研究,我从一篇Commonsware帖子中了解到,Android只会针对sw720dp这样做.如果你问我我有点浪费,因为许多设备def有足够的空间用于双窗格.所以我重写了onIsMultiPane()为w600dp和up返回true 的方法.工作就像一个魅力......有点儿.

给定一个设备,将在纵向和双窗格中显示单窗格; 以纵向查看标题并旋转到横向,工作正常.但是,如果选择一个标题并以纵向模式加载它的后续屏幕,则旋转到横向设备将保持单窗格而不是切换回双窗格.如果您然后返回导航到标题屏幕,它将返回双窗格外观,但它不会预先选择标题.因此,详细窗格保持空白.

这是预期的行为吗?无论如何要解决它吗?我也试过覆盖onIsHidingHeaders(),但这只会导致一切都显示为空白.

代码
偏好活动:

public class SettingsActivity extends PreferenceActivity {
@Override
public void onBuildHeaders(List<Header> target) {
    super.onBuildHeaders(target);
    loadHeadersFromResource(R.xml.preference, target);
}

@Override
public boolean onIsMultiPane() {
    return getResources().getBoolean(R.bool.pref_prefer_dual_pane);
}
}
Run Code Online (Sandbox Code Playgroud)


首选项标题片段:

public class ExpansionsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.pref_expansions);
}

public static ExpansionsFragment newInstance() {
    ExpansionsFragment frag = new …
Run Code Online (Sandbox Code Playgroud)

java android preferenceactivity android-preferences android-fragments

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

Android Lint:如何忽略区域语言环境字符串文件中缺少的翻译警告,该文件故意仅覆盖某些默认翻译?

是否有可能在没有Lint抱怨MissingTranslation的单独资源文件中翻译某些字符串,而不是全部?

例如:我的应用程序的字符串都在res/values/strings.xml中.其中一个字符串是

<string name="postal_code">Postal Code</string>

由于"邮政编码"在美国通常被称为"邮政编码",我想在内容中添加另一个资源res/values-en-rUS/strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="postal_code">Zip Code</string>
</resources>
Run Code Online (Sandbox Code Playgroud)

但是,Lint在values/strings.xml中抱怨其他字符串,但在values-en-rUS/strings.xml中没有

我意识到你可以通过tools:ignorevalues/strings.xml中指定来抑制警告.但这是不可取的,因为Lint警告在翻译成另一种语言时实际上很有用.

相反,是否可以在values-en-rUS/strings.xml文件中禁止警告,如在查找缺少的翻译时告诉Lint不要将该文件用作标准?

android translation localization lint android-lint

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

膨胀自定义按钮类时出错.NoSuchMethodException

我正在尝试创建一个包含两个文本字段的自定义按钮.当我从代码创建实例时,它可以工作.当我尝试从XML充气时,它会崩溃.

到目前为止我尝试解决这个问题:

  • 遵循并理解SDK中的LabelView代码示例.
  • 接下来,了解这个优秀的Devoxx自定义FlowLayout演示文稿.
  • 跟随并理解了关于该主题的大量教程.
  • 花了不少时间审查stackoverflow上的类似问题.
  • 将代码剥离回简单地将属性集传递给超类的基础知识.

从我读过的问题来看,最常见的原因是没有定义获取属性集所需的构造函数即

MyClass(Context context, AttributeSet attrs) {
    super(context, attrs);
}
Run Code Online (Sandbox Code Playgroud)

在LogCat的错误列表的末尾附近,我有:

Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android.util.AttributeSet]
Run Code Online (Sandbox Code Playgroud)

这可能会导致我得出与其他许多人一样的错误的结论,但是当你查看下面的代码时,你可以看到我已经定义了这个表单的构造函数.

我似乎完全像所有消息来源所说的那样做.我只是看不到我错过的东西.

SRC/com.soundconception.custombuttontest2/TitledValueButton.java

package com.soundconception.custombuttontest2;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.Button;

public class TitledValueButton extends Button {

    public TitledValueButton(Context context) {
        super(context);
    }

    protected TitledValueButton(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
}
Run Code Online (Sandbox Code Playgroud)

RES /值/ attrs.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <declare-styleable name="TitledValueButton">
        <attr name="titleText" format="string" />
    </declare-styleable>

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

RES /布局/ activity_main.xml中 …

android android-custom-view

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

我们可以使用Guid作为Sqlite数据库中的主键

是否可以将GUID用作SQLITE数据库中的主键?如果可以,可以使用哪种数据类型?

sqlite uuid android guid primary-key

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

将文件对象转换为位图

我正在使用Universal-Image-Loader,这个功能可以从SD卡访问图像的文件缓存.但我不知道如何将返回的文件缓存转换为位图.基本上我只想将位图分配给ImageView.

File mSaveBit = imageLoader.getDiscCache().get(easyPuzzle);

Log.d("#ImageValue: ", ""+mSaveBit.toString());
mImageView.setImageBitmap(mSaveBit);
Run Code Online (Sandbox Code Playgroud)

错误:"ImageView类型中的方法setImageBitmap(Bitmap)不适用于参数(File)"

java android caching bitmap universal-image-loader

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

无法使用ip:port访问WEB API,但在VS调试模式下可以使用localhost:port

我正在尝试从.net编写一个WEB API,并尝试让我的Android应用程序从sql server数据库中查询一些数据.

我编写了web api,它在调试模式下运行良好.

我的问题是我注意到该应用程序的URL是localhost:port,它运行正常.但是,当我尝试将其更改为MYIP:port (eg. http:192.168.X.1234)或者MYHOSTNAME:port (eg win7home:1234)这给了我Bad Request - Invalid Hostname.

我知道我可以将其部署到IIS并且我的IIS已经设置但我只是想知道它怎么会在调试模式下不起作用???

有没有办法让我在调试模式下运行它并同时在我的Android上测试,而不是每次我想要进行更改时都要部署它?

c# asp.net debugging android localhost

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

FragmentTransaction完成时的事件

FragmentTransaction完成后是否可以有一个事件?

FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.content_frame, fragment).commit();
Run Code Online (Sandbox Code Playgroud)

事实上,我为我的应用程序使用抽屉,并且我想invalidateOptionsMenu();在事务完成时触发以更改操作栏的菜单.

android listener fragment

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