小编Mik*_*ike的帖子

强制布局刷新/重绘android?

我想改变布局的位置,75ms后将其返回到第一个位置进行移动,这是我的代码:

for(int i = 0; i < l1.getChildCount(); i++) {  
    linear = (LinearLayout) findViewById(l1.getChildAt(i).getId());  
    LayoutParams params = new LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);  
    params.bottomMargin = 10;  
    linear.setLayoutParams(params);  
    SystemClock.sleep(75);
}   
Run Code Online (Sandbox Code Playgroud)

问题是应用程序停止750毫秒,并没有做任何事情.我试过 invalidate(),refreshDrawableState(),requestLayout(), postInvalidate(),并尝试调用onResume(),onRestart(),onPause().

layout android refresh

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

如何在android中将drawable设置为ListView

我正在为Android 1.5编写一个应用程序.我想使用复杂的列表视图来显示我的数据.我想在List项目中显示可绘制对象的ImageView.

我从一个演示中学到了:

------> listData.put("Img", listData.put("Img", R.drawable.XXX));
listData.put("Time", "100");
listItems.add(listData);
Run Code Online (Sandbox Code Playgroud)

它可以正确显示,但是,我想在运行时更改Img,图像可能在运行时生成,所以我将代码更改为如下,但它会下降.谁能帮我 ?非常感谢!

protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.item_list);
    itemListView = (ListView) findViewById(R.id.listview);
    ArrayList<HashMap<String, Object>> listItems = new ArrayList<HashMap<String, Object>>();
    for(int i = 0;i <XXX.size(); ++i) {
        HashMap<String, Object> listData = new HashMap<String, Object>();
--------->/*1)*/  listData.put("Img", new Drawable(XXX));
        /*2)*/  listData.put("Time", "100");
        /*3)*/  listItems.add(listData);
    }
    SimpleAdapter listItemAdapter = new SimpleAdapter(this, listItems, R.layout.listitem, new String[] { "Img", "Time"}, new int[] { R.id.listitem_img, R.id.listitem_time });
    itemListView.setAdapter(listItemAdapter);
}
Run Code Online (Sandbox Code Playgroud)

listitem.xml …

android listview drawable imageview

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

尝试从本地文件安装 apk 时未发现活动错误

我制作了一个应用程序,我从内部服务器下载 APK,将其保存在本地并希望提示用户安装它。
我的代码如下:

protected void onPostExecute(String path) {
    Intent promptInstall = new Intent(Intent.ACTION_VIEW);
    promptInstall.setDataAndType(Uri.parse(path), "application/vnd.android.package-archive");
    promptInstall.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(promptInstall);
}
Run Code Online (Sandbox Code Playgroud)

该路径包含 APK 文件,因此下载没有问题,但在尝试启动活动时,我得到:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=/storage/sdcard/download/internalLocalApplication.apk typ=application/vnd.android.package-archive flg=0x10000000 }
     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1765)
     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1602)
     at android.app.Activity.startActivityFromFragment(Activity.java:4340)
     at android.app.Activity.startActivityFromFragment(Activity.java:4312)
     at android.app.Fragment.startActivity(Fragment.java:1075)
     at android.app.Fragment.startActivity(Fragment.java:1054)
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么?

更新:
似乎如果我按如下方式更改代码,它会起作用!好像Uri有问题?

@Override
protected void onPostExecute(String path) {
    Uri fileLoc = Uri.fromFile(new File(path));
    Intent promptInstall = new Intent(Intent.ACTION_VIEW);
    promptInstall.setDataAndType(fileLoc, "application/vnd.android.package-archive");
    promptInstall.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(promptInstall);
}
Run Code Online (Sandbox Code Playgroud)

installation android android-activity

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

活跃的Android很容易受到SQL注入。有什么已知的解决方案吗?

Android 应用程序已使用 ActiveAndroid 开发

public static List<ModelNames> search(String pattern) {
    return new Select().from(ModelNames.class)
            .where("title LIKE '%" + pattern + "%' or content LIKE '%" + pattern + "%'")
            .orderBy("title")
            .execute();
}
Run Code Online (Sandbox Code Playgroud)

现在很容易出现 SQL 注入。

有没有人遇到过类似的问题并找到了解决方案,或者有人可以提供相同的解决方案吗?

在github上发现了一个问题,但无法得到正确的解决方案。

sqlite android sql-injection activeandroid

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

SWT DateTime格式更改

我正在使用DateTime SWT组件,它显示时为美国格式(mm/dd/yyyy).

有没有办法将格式更改为dd/mm/yyyy?

java swt datetime date-format

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

Android折叠工具栏:如何调整文本大小,使其显示全文而非部分文本

我正在使用CollapsingToolbarLayout:

我使用以下代码来显示标题:

collapsingToolbar = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar);
collapsingToolbar.setTitle("Udupi Sri krishna Temple");
Run Code Online (Sandbox Code Playgroud)

文字如下所示.它只显示部分并显示..结尾.有没有办法控制大小,以便显示全文.

在此输入图像描述

android android-collapsingtoolbarlayout

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

如果TD不包含任何ID,如何使用JavaScript获取TD值

我有一张TD没有id的表,但我有唯一的TH值.示例表是,

<table class="data-table" id="product-attribute-specs-table">
    <colgroup>
        <col width="25%">
        <col>
    </colgroup>
    <tbody>
        <tr class="first odd">
            <th class="label">SKU</th>
            <td class="data last">904532</td>
        </tr>
        <tr class="odd">
            <th class="label">Width</th>
            <td class="data last">20</td>
        </tr>
        <tr class="even">
            <th class="label">Lead Time</th>
            <td class="data last">49</td>
        </tr>
        <tr class="last odd">
            <th class="label">Depth</th>
            <td class="data last">63</td>
        </tr>
    </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

我想在var中读取提前期的值.我怎么读才能使用javascript即var = ??

javascript jquery

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

具有或不具有addToBackStack()的FragmentTransaction :: replace()

具有添加片段和后续replace()片段的流程。所有片段都被动态添加,但并非所有call都被添加addToBackStack()

getSupportFragmentManager().beginTransaction()
    .add(R.id.frgment_holder, frgmtA, frgmtA.NAME)
    .commit();
Run Code Online (Sandbox Code Playgroud)

在某个地方可以添加另一个,例如:

getSupportFragmentManager().beginTransaction()
    .replace(R.id.frgment_holder, frgmtB)
    .addToBackStack(frgmtB.NAME)
    .commit();
Run Code Online (Sandbox Code Playgroud)

replace()与frgmtB将从容器R.id.frgment_holder删除frgmtA。如果在此状态下按返回按钮,则会弹出frgmtB。但是,即使addToBackStack()添加时未调用它,它也会重新创建frgmtA 吗?

如果在通过序列将片段添加到同一容器的流程中,混合了add()和replace()调用,而有人调用addToBackStack()但有人不调用,则后退按钮的行为如何?

编辑:之后

getSupportFragmentManager().beginTransaction()
        .replace(R.id.frgment_holder, frgmtB)
        .addToBackStack(frgmtB.NAME)
        .commit();
Run Code Online (Sandbox Code Playgroud)

getSupportFragmentManager().findFragmentByTag(frgmtA.NAME);
Run Code Online (Sandbox Code Playgroud)

仍然找到frgmtA?如果在添加frgmtA时也调用addToBackStack()会怎样?

博士说:“这首先搜索当前添加到经理活动中的片段;如果未找到此类片段,则搜索当前堆栈上的所有片段。”

情况将是

  1. 添加frgmtA; 不调用添加到堆栈;UI状态在这里改变了;

(如果frgmtA不是由add()动态添加的,而是在布局文件中使用class =“ frgmtA”分隔的,该怎么办?)

  1. 用frgmtB替换(); addToStack();

  2. 用frgmtC替换(); addToStack();

那么如果stackTop是frgmtC,则希望按后退按钮以将第一个frgmtA带回其最后一个UI状态。

android android-fragments fragment-backstack

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

在菜单项 xml 之间添加水平视图(线)

我正在使用导航视图、标签菜单和项目,我想在每个选项项目之间添加线条。这是我的菜单:

<group android:checkableBehavior="single">
    <item
        android:id="@+id/nav_camera"
        android:icon="@drawable/ic_menu_camera"
        android:title="Import" />
    <item
        android:id="@+id/nav_gallery"
        android:icon="@drawable/ic_menu_gallery"
        android:title="Gallery" />
    <item
        android:id="@+id/nav_slideshow"
        android:icon="@drawable/ic_menu_slideshow"
        android:title="Slideshow" />
    <item
        android:id="@+id/nav_manage"
        android:icon="@drawable/ic_menu_manage"
        android:title="Tools" />
</group>
Run Code Online (Sandbox Code Playgroud)

我不太清楚这个项目是如何工作的,也不知道为什么我们不能从 XML 中放入其他类别的标签。

xml android navigationview android-navigationview

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

Android:在不使用任何需要主动请求的权限的情况下获取用户国家代码的方法?

我想获取用户的国家/地区代码,而不使用在 android M 下需要主动请求的任何权限。例如,如果用户位于中国,我想取回 CH。我不想为此使用“危险”权限 - 也不想read_phone_state通过TelephonyManager,也不想通过位置来尝试根据他的 GPS 进行猜测。有没有办法做到这一点,如果有的话,怎么做?

我尝试使用以下代码,但如果用户将其语言设置与其所在国家/地区分开(例如印度的用户将其手机设置为 English_US),则很容易失败:

Resources r = paramContext.getResources();
Configuration config = r.getConfiguration();
Locale currentLocale = config.locale;
Log.d("TAG", "Country: " + currentLocale.getCountry()); 
Run Code Online (Sandbox Code Playgroud)

android country-codes android-location android-permissions android-6.0-marshmallow

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

复选框按钮设置为null时的波纹效果位置

复选框按钮设置为null时的涟漪效应问题:

使用风格

<style name="MyRow">
<item name="android:button">@null</item>
<item name="android:drawableRight">@drawable/abc_btn_radio_material</item>
<item name="android:drawableEnd">@drawable/abc_btn_radio_material</item>
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:padding">@drawable/dafaultPadding</item>
Run Code Online (Sandbox Code Playgroud)

这是包含单选按钮的单选组。

<RadioGroup android:layout_height="wrap_content" android:layout_width="match_parent">

<android.support.v7.widget.AppCompatRadioButton style="@style/MyRow"
    android:id="@+id/one"
    android:text="@string/someText"
    />

<android.support.v7.widget.AppCompatRadioButton style="@style/MyRow"
    android:id="@+id/two"
    android:text="@string/someText"
    />

<android.support.v7.widget.AppCompatRadioButton style="@style/MyRow"
    android:id="@+id/three"
    android:text="@string/someText"
    />

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

当android:button属性设置为可绘制时,波纹动画将按预期工作。如果为null,则在棉花糖(行中间的波纹)上具有此行为。

点击这里查看图片

在棒棒糖中可以正常工作,除了它没有边界而且波纹会扩展到整个窗口。

解决此问题的唯一方法是为单选按钮左侧的每个包含textview的行创建自定义视图。但是以这种方式,我将不得不创建一个类似怪物的控制器(在按下文本视图时选择复选框),而我将失去广播组的所有优势。

在此处输入图片说明

android android-layout

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

Okhttp3 - 接受所有证书并使用certificatePinner

我正在尝试固定服务器的自签名证书.我的OkHttpClient有两个参数,第一个是ssl Socket Factory:

final TrustManager[] trustAllCerts = new TrustManager[] {
        new X509TrustManager() {
            @SuppressLint("TrustAllX509TrustManager")
            @Override
            public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException {}

            @SuppressLint("TrustAllX509TrustManager")
            @Override
            public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException {}

            @Override
            public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                  return new X509Certificate[0];
            }
         }
     };

// Install the all-trusting trust manager
SSLContext sslContext;
try {
     sslContext = SSLContext.getInstance("SSL");
     sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
 } catch (NoSuchAlgorithmException | KeyManagementException e) {
     e.printStackTrace();
     FirebaseCrash.report(e);
     return null;
}

// Create an ssl socket …
Run Code Online (Sandbox Code Playgroud)

java ssl android okhttp3

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

android:光标会忽略表中的第一行

我有一个数据库,我想使用游标收集字符串[]中一列的所有对象...所以这是我的代码:

c.moveToFirst();
int i = 0;
String[] addresses = new String[c.getCount()];
while(c.moveToNext()) {
    addresses[i] = c.getString(c.getColumnIndex("address"));
    i++;
}
c.close();
Run Code Online (Sandbox Code Playgroud)

但是当我使用这段代码时:

StringBuilder builder = new StringBuilder();
for(String in : addresses) {
    builder.append("" + in + " ");
}
Toast.makeText(getApplicationContext(), builder, Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)

用于显示我的字符串[]中的所有对象,我得到了:

234567null..但是正确的答案应该是这样的:1234567..!

所以我的错误在哪里?... 谢谢!!

java android

0
推荐指数
1
解决办法
281
查看次数