小编Mik*_*e T的帖子

如何通过SD卡从Intent打开PDF

我正在尝试启动一个Intent在我的应用程序中的资产文件夹中打开一个pdf.我已经阅读了几十篇帖子,但仍然被卡住了.显然我需要先将pdf复制到SD卡然后启动Intent.它仍然无法正常工作.

我认为问题是Intent启动所以我只是试图打开一个文件"example.pdf",我使用这段代码将其复制到SD卡上:

Log.w("IR", "TRYING TO RENDER: " + Environment.getExternalStorageDirectory().getAbsolutePath()+"/example.pdf");
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(Environment.getExternalStorageDirectory().getAbsolutePath()+"/example.pdf"), "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

try {
    startActivity(intent);
    Log.e("IR", "No exception");
} 
catch (ActivityNotFoundException e) {
    Log.e("IR", "error: " + e.getMessage());
    Toast.makeText(InvestorRelations.this, 
        "No Application Available to View PDF", 
        Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)

这是我的LogCat输出.

05-10 10:35:10.950: W/IR(4508): TRYING TO RENDER: /mnt/sdcard/example.pdf
05-10 10:35:10.960: E/IR(4508): No exception
Run Code Online (Sandbox Code Playgroud)

除了运行此代码之外,我得到以下Toast(不是我的应用程序生成的)

"不支持的文档类型"

但我可以通过安装的PDF查看应用程序手动打开文档.任何帮助将非常感激.

pdf android android-intent

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

安全修复:javax.net.ssl.SSLPeerUnverifiedException:没有对等证书

有很多关于这个问题的帖子(javax.net.ssl.SSLPeerUnverifiedException:没有对等证书),但我找不到任何适合我的问题.

许多帖子(像这样,这个)通过允许接受所有证书来"解决"这一点,但是,当然,除了测试之外,这不是一个好的解决方案.

其他人似乎很本地化,不适合我.我真的希望有人有一些我缺乏的见解.

所以,我的问题是:我正在一台只能通过本地网络访问的服务器上进行测试,通过HTTPS连接.我需要通过浏览器拨打电话工作正常.没有抱怨证书,如果你检查证书,这一切看起来都不错.

当我试用我的Android设备时,我明白了 javax.net.ssl.SSLPeerUnverifiedException: No peer certificate

这是调用它的代码:

StringBuilder builder = new StringBuilder();
builder.append( /* stuff goes here*/ );

httpGet.setEntity(new UrlEncodedFormEntity(nameValuePairs));
ResponseHandler<String> responseHandler = new BasicResponseHandler();

// Execute HTTP Post Request. Response body returned as a string
HttpClient httpClient = MyActivity.getHttpClient();
HttpGet httpGet = new HttpGet(builder.toString());

String jsonResponse = httpClient.execute(httpGet, responseHandler); //Line causing the Exception
Run Code Online (Sandbox Code Playgroud)

我的代码MyActivity.getHttpClient():

protected synchronized static HttpClient getHttpClient(){
    if (httpClient != null)
        return httpClient;

    HttpParams httpParameters = new BasicHttpParams(); …
Run Code Online (Sandbox Code Playgroud)

android ssl-certificate

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

使用ViewPager可见Fragment时,EditText会自动打开软键盘

我有一个Fragment(兼容版本)的EditText布局.我正在使用a ViewFlipper在片段之间翻转.当我遇到这个问题时Fragment,软键盘会自动打开.这不是我想要的.这是我试图阻止它或隐藏它.

尝试:

android:descendantFocusability="beforeDescendants" 
Run Code Online (Sandbox Code Playgroud)

在片段的主视图上

尝试:

android:windowSoftInputMode="stateHidden"
Run Code Online (Sandbox Code Playgroud)

android:windowSoftInputMode="stateAlwaysHidden"
Run Code Online (Sandbox Code Playgroud)

在活动的清单中

尝试:

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mViewPager.getChildAt(position).getWindowToken(), 0);
Run Code Online (Sandbox Code Playgroud)

在我的ViewPager的OnPageChangeListener上

尝试:

InputMethodManager imm = (InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(voucherView.findViewById(R.id.redeem_mobile_number).getWindowToken(), 0);
Run Code Online (Sandbox Code Playgroud)

在我的片段中的onCreateView中

尝试:

InputMethodManager imm = (InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getView().findViewById(R.id.redeem_mobile_number).getWindowToken(), 0);
Run Code Online (Sandbox Code Playgroud)

在我的片段中的onStart中

尝试:

voucherView.findViewById(R.id.redeem_mobile_number).clearFocus();
Run Code Online (Sandbox Code Playgroud)

在我的片段中的onCreateView中

在我看来,onPageChangeListener就是这样做的地方,因为其他调用在软键盘实际打开之前发生.任何帮助都会很棒.

android

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

关于主/细节流模板的两个问题

我刚刚看了一下Master/Detail Flow模板,我无法弄清楚2件事情.

1)当它生成的代码似乎使用Fragment兼容性支持时,为什么它需要Android版本11?特别是,为什么你不能生成运行Android版本8的模板?(例如此导入)

import android.support.v4.app.FragmentActivity;
Run Code Online (Sandbox Code Playgroud)

2)如果活动足够大,主活动如何知道是否在新活动或详细信息窗格中显示详细信息?它似乎是通过这段代码来做到的:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_item_list);

    if (findViewById(R.id.item_detail_container) != null) {
        mTwoPane = true;
        ((ItemListFragment) getSupportFragmentManager()
                .findFragmentById(R.id.item_list))
                .setActivateOnItemClick(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

setContentView(R.layout.activity_item_list);将布局设置为ListFragment只设置自己的适配器,但我看不出如何findViewById(R.id.item_detail_container) != null返回true,因为它似乎永远不会被打开/膨胀.

有线索吗?

android

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

Android开关定制左右drawables

我正在尝试创建这样的自定义开关:

自定义性别开关

我觉得我需要的是左/右抽屉,每个都是绿色/白色状态,或者是绿色轮廓,带有抽屉,用于选择时.

我不喜欢在帖子明白是所有样本绘制资源如何"打开"按钮,偏到左边提供向右倾斜,然而.

我正在尝试使用以下'拇指'可绘制.

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true"  android:drawable="@drawable/choice_right"/>
    <item                               android:drawable="@drawable/choice_left"/>
</selector>
Run Code Online (Sandbox Code Playgroud)

但它似乎削减了抽签的目的.如果我也设置了这样的轨道:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle" >

        <stroke 
            android:width="1dp" 
            android:color="@color/text_input"/>

        <corners
            android:radius="1dp"
            android:bottomLeftRadius="4.5dp"
            android:bottomRightRadius="4.5dp"
            android:topLeftRadius="4.5dp"
            android:topRightRadius="4.5dp" >
    </corners>
</shape>
Run Code Online (Sandbox Code Playgroud)

然后我得到的只是一条细线.所以,我不确定下一步该尝试什么.

android android-switch

13
推荐指数
2
解决办法
6783
查看次数

java中的多个main()方法

我想知道创建额外的主要方法会对您的代码产生什么影响.

例如,

public class TestClass {
    public static void main (String[] args){
        TestClass foo = new TestClass();
    }
}
Run Code Online (Sandbox Code Playgroud)

程序最初启动后,将创建foo,并在其中包含另一个公共main方法.这会导致任何错误吗?

java methods program-entry-point

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

android - 如何在电子邮件正文中创建表

我想在电子邮件正文中创建表.我读了一些android不支持表标签的地方.如何实现这一点.请任何人帮助我.

输出:

在此输入图像描述

谢谢

html android

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

TextView在应用重力样式时仅显示一个字符

我有一个包含3行数字的表(摘要信息).TextViews使用默认重力设置样式时,文本显示正确.

在此输入图像描述

但是当它们被设置为样式时<item name="android:gravity">right</item>,每个TextView只显示它应该的第一个字符.

在此输入图像描述

这甚至包括列标题 - 这里没有显示 - 我甚至没有改变.

我希望表值正确对齐以与应用程序的其余部分保持一致,并且我难以理解为什么表中的值将表现得像这样.

这是我的风格(当它不起作用时):

<style name="summary_values">
    <item name="android:textSize">@dimen/font_size</item>
    <item name="android:textStyle">bold</item>
    <item name="android:textColor">@color/background</item>
    <item name="android:gravity">right</item>
</style>
Run Code Online (Sandbox Code Playgroud)

这是其中一个单元格的XML(它们基本相同)

<TextView 
    android:id="@+id/value1"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="@integer/table_weight_percent_value"
    style="@style/summary_values"/>
Run Code Online (Sandbox Code Playgroud)

编辑

即使gravity设置为left或,也会发生截断center.

编辑2

我已经<item name="android:gravity">right</item>完全从样式中删除了这一行,它有时会截断,具体取决于值.我已经完成了我的代码,代码中的值是正确的.

编辑3

删除除字体颜色之外的所有样式后,截断仍然会发生,但我还没弄清楚何时.如果我更改输入表中的数字,则汇总值有时会被截断,有时则不会.

这是表格中的一行.除了id更改之外,所有行都相似.

<TableRow
    android:padding="@dimen/pad_12">
    <TextView 
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="@integer/table_weight_percent_label"
        android:text="@string/cho"
        style="@style/label_light"/>
    <TextView
        android:id="@+id/percent_1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="@integer/table_weight_percent_value"
        style="@style/summary_values"/>
    <TextView 
        android:id="@+id/val1a"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="@integer/table_weight_percent_value"
        style="@style/summary_values"/>
    <TextView 
        android:id="@+id/val1b"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="@integer/table_weight_percent_value"
        style="@style/summary_values"/>
</TableRow>
Run Code Online (Sandbox Code Playgroud)

编辑4

尝试了一些事情后,我改变了包含TableView一个LinearLayout与水平方向.我甚至将TableRow …

android android-layout

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

Android服务器请求的盗版预防

我正在开发一个需要服务器完成大部分繁重工作的应用程序.我想防止盗版客户端向该服务器发送请求.有没有办法发送一些带有请求的标识符,以便我的服务器可以询问Android Market是否有该ID的用户实际购买了应用程序?我该怎么做呢?

请注意,仅使用LVL保护应用程序是行不通的,因为人们可以相当轻松地编写应用程序以与服务器连接,并仍然提供与付费应用程序相同的功能.

security android apk

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

GooglePlayServicesUtil错误对话框按钮不执行任何操作

我正在为我的应用添加一个MapFragment,并提供以下代码,改编自地图教程:

private boolean servicesConnected() {
    // Check that Google Play services is available
    int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);

    // If Google Play services is available
    if (ConnectionResult.SUCCESS == resultCode) {
        // In debug mode, log the status
        Log.d("Location Updates", "Google Play services is available.");
        // Continue
        return true;

    // Google Play services was not available for some reason
    } else {
        GooglePlayServicesUtil.getErrorDialog(resultCode, this, 7).show();
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用过时的谷歌播放服务在出厂重置Galaxy选项卡10.1上进行测试.因此,当我尝试打开MapFragment时,我打电话servicesConnected()来检查,并且正如预期的那样,我得到一个对话框,告诉我我需要Google Play服务.在对话框的底部有一个"获取Google Play服务"按钮,但是当我点击它时,它什么也没做.我的LogCat产生以下输出:

07-23 15:30:43.580: W/GooglePlayServicesUtil(2515): Google Play services is missing. …
Run Code Online (Sandbox Code Playgroud)

android google-maps google-play-services

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