小编Arn*_*rty的帖子

获得视图的边距

如何从活动中获取视图的边距值?视图可以是任何类型.

经过一些搜索后,我找到了获取视图填充的方法,但在边距上找不到任何内容.有人可以帮忙吗?

我试过这样的事,

ViewGroup.LayoutParams vlp = view.getLayoutParams();
int marginBottom = ((LinearLayout.LayoutParams) vlp).bottomMargin;
Run Code Online (Sandbox Code Playgroud)

这是有效的,但在上面的代码中我假设视图是一个LinearLayout.但margin即使我不知道视图类型,我也需要获取属性.

android android-layout android-view

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

测试电池使用情况

我想测试我的应用程序如何影响手机/平板电脑的电池.

是否有任何测试工具可以让我这样做?

例如,我想测试我的应用程序的哪些模块消耗最多的电池等.

testing android

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

向ViewPager动态添加/删除页面

我想动态地在我的视图寻呼机中添加或删除页面.那可能吗?

android android-viewpager

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

在RedirectToAction调用中传播QueryString参数

我想确保QueryString中的特定参数,在我的情况下,request_id传播到重定向的操作.

比方说,我有一个动作First,

[HttpPost]
public ActionResult First() 
{
    ////////////////////
    // Lots of code ...
    ////////////////////

    return RedirectToAction("Second");
}
Run Code Online (Sandbox Code Playgroud)

现在说,First回发中有一个参数QueryString,我想传递给Second动作.一种方法是传递RedirectToAction调用本身的值,

string requestId = Request.QueryString[REQUEST_ID_KEY];
return RedirectToAction("Second", new { REQUEST_ID_KEY = requestId });
Run Code Online (Sandbox Code Playgroud)

但我必须在一系列操作中执行此操作,并且我不愿意将请求ID传播逻辑合并到操作中.如果我可以将其合并到一个内容中会更好ActionFilter,但我无法弄清楚如何从ActionFilter向QueryString添加参数.有任何想法吗?

asp.net asp.net-mvc redirecttoaction action-filter asp.net-mvc-3

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

为警报对话框设置Android Theme.Light

我正在尝试为我的警报对话框设置android Theme.Light主题,但到目前为止没有成功.在阅读了一些教程后,我使用AlertDialog.Builder收集了这些教程,我们无法直接在构造函数中设置主题(至少在API级别7中).

我找到的替代解决方案是使用ContextThemeWrapper,每个人都保证会解决我的问题.所以我编写了这样的代码:

AlertDialog.Builder builder = new AlertDialog.Builder(
                    new ContextThemeWrapper(context, R.style.popup_theme));
Run Code Online (Sandbox Code Playgroud)

我在values文件夹中描述了我的主题:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="back_color">#ffffffff</color>
<style name="popup_theme" parent="@android:style/Theme.Light">
    <item name="android:windowBackground">@color/back_color</item>
    <item name="android:colorBackground">@color/back_color</item>
</style>
Run Code Online (Sandbox Code Playgroud)

不幸的是,我仍然得到默认的Theme.Dialog.Alert主题.谁能告诉我为什么?我哪里错了?

编辑:如果您不知道我的问题的答案,请投票.我有一个坏习惯,发布被卡住的问题:(

android android-layout android-theme android-alertdialog

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

将创建的文档结果转换为POCO

我有以下代码调用DocumentDB并创建一个新的Employee文档.如何再将结果转换为Employee文档?基本上,我想捕获创建的文档并将其转换为Employee对象.

var result = await client.CreateDocumentAsync(collection.SelfLink, employee);

if(result.StatusCode == System.Net.HttpStatusCode.Created)
{
   Employee emp = result.Resource; // How do I convert the result to Employee object here?
}
Run Code Online (Sandbox Code Playgroud)

azure-cosmosdb

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

Android:具有BACK按钮功能的startActivityForResult()

我想开始一个新activityresult,有startActvityForResult(),但我想有back按钮正常工作在新的活动.

目前,当我调用new Activityfor result时,当我按下新Activity中的后退按钮时没有任何反应.

我试过这样的事情:

@Override
public void onBackPressed() {
    setResult(0);
    super.onBackPressed();
    finish();
}
Run Code Online (Sandbox Code Playgroud)

在新的活动中,但它没有奏效.按下后退按钮时仍然没有任何反应.

有没有解决的办法?

编辑:我当然可以加载最后ActivityonBackPressed()(可以吗?),但它似乎是一个相当糟糕的黑客.

Alex Ady的回答解决了我的问题,但我仍然不明白为什么onBackPressed()不起作用.现在的工作代码是这样的:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        setResult(1);
        finish();
    }
    return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)

我可以用一个解释.

java android activity-finish android-activity

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

是否有太多日志写入会降低Android应用程序性能?

我想知道日志记录是否会降低应用程序性能?另外,请给我一些提高Android应用程序性能的技巧.

android android-logcat

11
推荐指数
1
解决办法
5144
查看次数

WebView是否需要WebViewClient才能工作?

我正在浏览android教程并试用了这个WebView例子.这就是我最终得到的结果:

WebAppActivity

public class WebAppActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        WebView wv = (WebView) findViewById(R.id.webView1);
        wv.loadUrl("http://www.google.com");

    }
}
Run Code Online (Sandbox Code Playgroud)

main.xml中

<?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="fill_parent"
    android:orientation="vertical" >

    <WebView
        android:id="@+id/webView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    </WebView>

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

但是,不是在应用程序本身中加载页面,一旦应用程序启动,默认的android浏览器就会打开,并且页面会在浏览器而不是应用程序中加载.当我按下时,我返回显示空白屏幕的应用程序活动.

有谁知道为什么会这样?

编辑:

表现

<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.INTERNET"/>

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:label="@string/app_name"
        android:name=".WebAppActivity" >
        <intent-filter >
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application> …
Run Code Online (Sandbox Code Playgroud)

android android-webview

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

获取最后加载的webview网址,而无需在Android中执行webView.goBack()

我想记录历史记录网址或上次加载的网址,而无需手动存储历史记录网址.那可能吗?

android webkit browser-history android-webview

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