小编Jas*_*sby的帖子

以编程方式设置视图宽度

我正在尝试在代码中设置视图的宽度和高度,以显示我正在处理的免费应用的广告.除了此广告之外,所有UI都以XML格式完成.以下是显示广告的代码.它在onCreate.

AdView adView = new AdView(this,"ad_url","my_ad_key",true,true);
LinearLayout layout = (LinearLayout) findViewById(R.id.testing);
adView.setAdListener(this);
layout.addView(adView);
Run Code Online (Sandbox Code Playgroud)

这会导致广告显示如下.正如您所看到的,宽度并不完全填满整个页面.

在此输入图像描述

现在,当我将代码更改为此尝试设置大小时:

AdView adView = new AdView(this,"ad_url","my_ad_key",true,true);
LinearLayout layout = (LinearLayout) findViewById(R.id.testing);
adView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, 
                       LayoutParams.WRAP_CONTENT));
adView.setAdListener(this);
layout.addView(adView);
Run Code Online (Sandbox Code Playgroud)

我明白了:

在此输入图像描述

我尝试了所有不同的组合,FILL_PARENT并且WRAP_CONTENT所有组合都具有相同的结果.有什么我想念的吗?或者另一种方法,我可以让广告填充设备的宽度而不填充高度?非常感谢任何建议和帮助.

编辑当我尝试将其放入XML时我得到一个例外:

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:id="@+id/main_layout">

<fragment
    android:name="com.jasoncrosby.app.tipcalculatorfree.MainButtonFragment"
android:id="@+id/button_frag"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>
<com.adsdk.sdk.banner.AdView
    android:id="@+id/banner"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"/>

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

> 09-09 22:39:43.448: E/AndroidRuntime(586): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jasoncrosby.app.tipcalculatorfree/com.jasoncrosby.app.tipcalculatorfree.MainActivity}: android.view.InflateException: Binary XML file line #14: Error inflating class com.adsdk.sdk.banner.AdView
09-09 22:39:43.448: E/AndroidRuntime(586):  at …
Run Code Online (Sandbox Code Playgroud)

android android-layout mobfox

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

使用自定义操作启动活动

我希望使用自定义操作在我的应用中启动活动.我找到了一些答案,但我尝试的所有内容都会java.lang.RuntimeException说没有找到任何活动来处理Intent {act = com.example.foo.bar.YOUR_ACTION}.

这是我的清单文件中的活动:

<activity
    android:name=".FeedbackActivity" >  
    <intent-filter>
        <action android:name="com.example.foo.bar.YOUR_ACTION" />
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

这就是我开始活动的方式:

Intent intent = new Intent("com.example.foo.bar.YOUR_ACTION");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

android android-intent android-activity

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

活动和片段交互

我有一个Activity多个Fragments.我想从其中一个中显示DialogFragment或打开另一个.我知道应该是开放s的任务,所以我尝试了几件事.FragmentFragmentActivityFragment

首先,
我尝试使用getActivity()并转换它,以便我可以调用一个方法Activity来显示一个Fragment但是这会在Fragmentwith中创建一个依赖项,Activity并且我希望尽可能避免添加依赖项.

第二次
接下来我尝试了一个听众通知Activity它应该显示一个Fragment.所以我在Activity实现监听器接口时创建了一个类.但是我遇到了问题,因为我必须使用New MyActivity().new Listener();它会Exception在我尝试使用时抛出一个,getSupportFragmentManager()因为这个实例Activity没有初始化.

第三
我又试图有Activity直接实现侦听器,因为那时我只是用侦听器而不是Activity创建依赖.然而,现在我已经到了这样的程度,我Activity将实施2-4个不同的界面,这让我犹豫不决,因为它会严重降低凝聚力.

所以我试过的任何方式我似乎都碰到了一堵砖墙并创造了依赖性,我不确定我是否需要创造.我搞砸了,不得不选择其中一种选择吗?如果是这样哪个选项最好?非常感谢任何帮助或建议.

oop android listener android-fragments

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

Thread.setDefaultUncaughtExceptionHandler 用于错误

我正在开发一个 Android 应用程序,对于未捕获的异常,我这样做。

Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler()...);

当抛出未捕获的异常时,我会记录它并向我的问题跟踪器发送请求以创建新问题。我想对错误做同样的事情。有没有办法拦截 Java 或 Android 中未捕获的错误?我已经梳理了 stackoverflow 和 Google 并没有找到任何东西。

java error-handling android exception-handling

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

Android layout_weight不工作

我正在制作一个带有5个按钮的片段.当它在像平板电脑这样的大屏幕上时,我会使用一个片段将所有5个按钮放在顶部.我将所有layout_width设置为1,但按钮不会像预期的那样在屏幕上均匀分布.

预期[全部] [我的] [按钮] [转] [这里]

我得到什么b1 b2 b3 b4 b5 b3和b5只是一个按钮...只是显示它打破了一个单词[全部] [我的] [但] [转] [她]并将它放下一行.[吨] [e]

我一直在玩它并尝试不同的东西,但我不能让它改变.任何帮助表示赞赏.谢谢.

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

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/xlarge_layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<Button
    android:id="@+id/tip_btn"
    android:layout_width="0px"
    android:layout_height="wrap_content"
    android:layout_weight="2"
    android:text="@string/tip_button"
    android:onClick="tipButton">
</Button>

<Button
    android:id="@+id/preference"
    android:layout_width="0px"
    android:layout_height="wrap_content"
    android:layout_weight="2"
    android:text="@string/settings"
    android:onClick="showPreferences">
</Button>

<Button
    android:id="@+id/rate_btn"
    android:layout_width="0px"
    android:layout_height="wrap_content"
    android:layout_weight="2"
    android:text="@string/rate_button"
    android:onClick="rateButton">
</Button>

<Button
    android:id="@+id/feedback_btn"
    android:layout_width="0px"
    android:layout_height="wrap_content"
    android:layout_weight="2"
    android:text="@string/feedback_button"
    android:onClick="feedbackButton">
</Button>

<Button
    android:id="@+id/cancel_btn"
    android:layout_width="0px"
    android:layout_height="wrap_content"
    android:layout_weight="2"
    android:text="@string/exit_button"
    android:onClick="cancelButton">
</Button>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

android android-layout

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

请求的 Android 权限未显示在应用程序权限设置中

我正在开发一个需要权限INTERNETWRITE_EXTERNAL_STORAGEACCESS_WIFI_STATE和 的Cordova 应用程序CHANGE_WIFI_MULTICAST_STATE。我已在清单中请求这些权限,如下所示

<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="27" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
Run Code Online (Sandbox Code Playgroud)

INTERNETACCESS_WIFI_STATE、 和CHANGE_WIFI_MULTICAST_STATE被视为正常权限,根据文档,它们将在安装时被 Android 自动接受,并且用户无法撤销它们。

现在,在MainActivityCordova 创建的代码中,我在一个块中添加了以下代码if,用于检查以确保我们处于 6.0 或更高版本:

if (checkSelfPermission(Manifest.permission.ACCESS_WIFI_STATE) == PackageManager.PERMISSION_GRANTED &&
                checkSelfPermission(Manifest.permission.CHANGE_WIFI_MULTICAST_STATE) == PackageManager.PERMISSION_GRANTED &&
                checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
            Log.d(TAG, "has permission");
        }
        else {
            Log.d(TAG, "no permission");
            requestPermissions(new String[] { Manifest.permission.ACCESS_WIFI_STATE,
                    Manifest.permission.CHANGE_WIFI_MULTICAST_STATE, Manifest.permission.WRITE_EXTERNAL_STORAGE }, 0);
        }
Run Code Online (Sandbox Code Playgroud)

问题是,在运行 5.1.1 的 …

android cordova android-permissions

4
推荐指数
1
解决办法
6352
查看次数

使用Math with C++

我是一名Java开发人员,我也开始自学c ++.我知道Java和c ++之间的一些区别,但我不确定这里发生了什么.这是我遇到问题的代码.它只是来自一个教程,所以我不担心准确性.

void calculateHourly() {
    float totalWeeklyWage = mFltHourlySalary * mIntHoursWorked;
    float totalSales = mIntCostOfShoe * mIntUnitsSold;
    float totalCommission = (mIntHourlyCommission / 100) * totalSales;
    float grandTotalWage = totalWeeklyWage + totalCommission;

    cout << "You will get $" << grandTotalWage << " for selling " << mIntUnitsSold << " shoes in a week."
        << endl;
}
Run Code Online (Sandbox Code Playgroud)

问题是这条线

float totalCommission = (mIntHourlyCommission / 100) * totalSales;

无论出于何种原因totalCommission = 0,此方法运行完毕.我调试了这个,这个方法中的所有其他变量都等于它们应该等于的内容.随着我的Java上限以及我对c ++的一点知识告诉我这应该有效.

我在这种方法中遗漏了一些非常简单的东西,还是手头有更大的问题?非常感谢任何和所有的帮助.

c++ math

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

从自定义适配器获取项目位置

由于PreferenceFragment在支持库中没有提供,因此我创建了一个ListFragment向用户显示设置列表,因为我没有很多要显示的设置.我还创建了一个自定义ArrayAdapter来自定义列表项.当用户检查其中一个CheckBoxs 时我需要处理,以便我可以保存天气或者不检查它.因此,如果检查它,它将保持检查,直到用户取消选中它.如果列表中只有一个设置,但现在有2个,我可能需要添加更多设置,这会容易得多.所以我需要能够确定检查了哪一个.我可以处理检查并取消选中,我无法找到确定检查哪一个的方法.

代码

这是我的清单项目:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"
                      android:orientation="horizontal">

<TextView android:id="@+id/pref_edit_text" android:layout_width="0dp" android:layout_height="30dp"
              android:layout_weight="5"/>
    <CheckBox android:id="@+id/pref_check_box" android:layout_width="0dp" android:layout_height="wrap_content"
              android:layout_weight="1" android:onClick="onCheckBoxClick"/>
    </LinearLayout>

<TextView android:id="@+id/pref_edit_text2" android:layout_width="match_parent"
              android:layout_height="50dp"/>
Run Code Online (Sandbox Code Playgroud)

这是getView()我的适配器:

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        //mIntCheckBoxPosition = position;
        Typeface tf = Typeface.createFromAsset(mMainActivity.getAssets(), "fonts/ArchitectsDaughter.ttf");
        LayoutInflater inflater = mMainActivity.getLayoutInflater();
        View view = inflater.inflate(mIntLayoutId, parent, false);

        TextView text = (TextView) view.findViewById(R.id.pref_edit_text);
        text.setText(mStringArrayTitle[position]);
        text.setTypeface(tf, Typeface.BOLD);

        text = (TextView) …
Run Code Online (Sandbox Code Playgroud)

android android-preferences android-arrayadapter android-listfragment android-support-library

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