小编Som*_*ere的帖子

Android上的SQLite:insertWithOnConflict()返回相同数据集的不断增加的结果

问题背景: 我有两个表,其中主键是文本字段.

当我反复使用SQLiteDatabase.insertWithOnConflict(myTable, null, myValues, SQLiteDatabase.CONFLICT_REPLACE)相同的数据时,我看到返回的值越来越多.

因此看起来对于相同的数据集正在执行INSERT(而不是REPLACE).

问题: 但是,使用"SQLite数据库浏览器"查看这些表时,我看到执行REPLACE时所期望的正确记录数.

我的困惑的根源是描述Android文档,其中指出:*如果输入参数'conflictAlgorithm'= CONFLICT_IGNORE则返回新插入行的行ID或现有行的主键,如果有任何错误,则返回-1

问题: 为什么要完成REPLACE,但不返回现有数据的行ID?

sqlite android

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

如何实现水平滚动倒数计时器?

目标 我想实现一个倒数计时器,它只是从左到右滚动数字(不是图形).

效果 效果看起来像数字从左侧放大,向下放慢到中间,然后向右缩放.

注意 由于我已经使用TimerTask每秒执行一次代码,我可以使用它来触发下一个数字来滚动水平滚动的textview.

这可以在scrollview中作为textview实现吗?寻找代码示例开始....

android

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

使用MpAndroidChart-CombinedChart,如何将图表分为上下部分?

在下图中,我绘制了一天的价格和每小时的交易量。为此,我使用一种CombinedChart类型。您会立即看到,由于两个图表都填满了屏幕,因此数量数据使用户从价格数据中分散了注意力。

问题: 是否可以保留图表底部25%的数量和图表顶部75%的价格?

比特币的价格和数量

代码如下:

private void setupChart(){
    chart.setAutoScaleMinMaxEnabled(true);
    chart.setBackgroundColor(Color.WHITE);
    chart.getDescription().setEnabled(false);
    chart.setPinchZoom(false);
    chart.setDrawGridBackground(false);
    chart.getLegend().setEnabled(true);
    chart.setDrawOrder(new CombinedChart.DrawOrder[]{ CombinedChart.DrawOrder.BAR, CombinedChart.DrawOrder.CANDLE });// draw bars behind candles

    // right side is for the volume
    YAxis rightAxis = chart.getAxisRight();
    rightAxis.setDrawGridLines(false);
    rightAxis.setAxisMinimum(0f);
}

@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
    chart.resetTracking();

    ArrayList<HistoricPrice> historicPrices = presenter.getHistoricalDataGranular(DEFAULT_GRANULARITY_MINS);

    ArrayList<CandleEntry> valuesCandles = new ArrayList<>();
    ArrayList<BarEntry> valuesBars = new ArrayList<>();


    for (int i = progress; (i < progress+MAX_CANDLES_COUNT) && (i < historicPrices.size()); i++) {
        HistoricPrice historicPrice = …
Run Code Online (Sandbox Code Playgroud)

android mpandroidchart

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

选择器反应缓慢 - 有时在开始下一次活动之前根本不会开火

我定义了这个Selector:

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

    <!-- PRESSED -->
    <item android:state_pressed="true"
          android:drawable="@drawable/backarrow_blueshiny" />

    <!-- FOCUSED --> 
    <item android:state_focused="true"
          android:drawable="@drawable/backarrow_blackshiny" />

    <!-- DEFAULT -->
    <item android:drawable="@drawable/backarrow_blackshiny" />

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

它与此按钮一起使用:

    <RelativeLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:background="@drawable/bottomborder_glossy">

        <!-- BACK -->
        <ImageButton
        android:id="@+id/filter_button_back"
        android:layout_width="90dip" 
        android:layout_height="wrap_content" 
        android:src="@drawable/selector_back_button"
        android:background="#00000000"
        android:layout_alignParentLeft="true"
        android:layout_alignParentBottom="true"/>

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

并且onTouch事件包括:

public boolean onTouch(View v, MotionEvent event)
{
    final int actionPerformed = event.getAction();
    final int widgetID = v.getId();

    if (actionPerformed == MotionEvent.ACTION_UP)
    {
        switch (widgetID)
        {
            case R.id.filter_button_back:
            {
                this.finish();
                break;
            }

        }

    }

    return false;
}
Run Code Online (Sandbox Code Playgroud)

这个按钮的作用是退出当前活动 …

android

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

在Android中,如何为每个人创建串口(ttyS0,ttyS1)r/w?

我开发了一个应用程序来监听串口,我一直在使用"chmod 666/dev/ttyS0"对串口进行读/写访问 - 但是 - 这种方法依赖于"su"并且只是暂时的.

需要做些什么来永久获得对串行端口的读/写访问权限?

android

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

如何使用硬编码值声明自定义数据类型的静态数组?

目标:

我想为不经常更改的数据实现硬编码查找表,但是当它确实发生更改时,我希望能够快速更新程序并重建.

计划:

我的计划是定义一个自定义数据类型...

private class ScalingData
{
    public float mAmount;
    public String mPurpose;
    public int mPriority;

    ScalingData(float fAmount, String strPurpose, int iPriority)
    {
        mAmount = fAmount;
        mPurpose = strPurpose;
        mPriority = iPriority;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,在主类中,像这样对数组进行硬编码......

public static ScalingData[] ScalingDataArray =
{
        {1.01f, "Data point 1", 1},
        {1.55f, "Data point 2", 2}
};
Run Code Online (Sandbox Code Playgroud)

但是,这不构建.我一直看到消息" Type mismatch: cannot convert from float[] to ScalingData".

我怎样才能实现目标?

UPDATE

到目前为止,我已尝试实施这些建议,但仍然遇到错误......

代码如下:

public class CustomConverter
{
    //Lookup Table
    private static ScalingData[] ScalingDataArray =
    {
        new …
Run Code Online (Sandbox Code Playgroud)

java static-array

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

升级到Android Studio 2.3后:transformNativeLibsWithStripDebugSymbolFor <build flavor>失败

我刚刚升级到Android 2.3工作室,这要求所有的build.gradle的使用最少buildToolsVersion25.0.0

应用了以下设置: buildToolsVersion "25.0.2"在我的项目中的所有build.gradle中 targetSdkVersion 25 compile 'com.android.support:support-annotations:25.3.0' compile 'com.android.support:support-v4:25.3.0'

我现在从gradle收到以下错误:由于gradlew assembleStgQa --stacktrace --info --debug

14:44:24.940 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] :app:transformNativeLibsWithStripDebugSymbolForStgQa (Thread[Daemon worker Thread 19,5,main]) started.
14:44:24.941 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] :app:transformNativeLibsWithStripDebugSymbolForStgQa
14:44:24.941 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Starting to execute task ':app:transformNativeLibsWithStripDebugSymbolForStgQa'
14:44:24.948 [INFO] [org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter] Putting task artifact state for task ':app:transformNativeLibsWithStripDebugSymbolForStgQa' into context took 0.006 secs.
14:44:24.949 [DEBUG] [org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter] Determining if task ':app:transformNativeLibsWithStripDebugSymbolForStgQa' is up-to-date
14:44:24.950 [INFO] [org.gradle.api.internal.changedetection.rules.TaskTypeTaskStateChanges] Task :app:transformNativeLibsWithStripDebugSymbolForStgQa class loader hash: 11b60c4720882a56a8c400e1b81f58b4
14:44:24.950 [INFO] [org.gradle.api.internal.changedetection.rules.TaskTypeTaskStateChanges] …
Run Code Online (Sandbox Code Playgroud)

android gradlew

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

旋转安卓手机时,EditText正在丢失用户的输入

问题

  • 当用户键入editText(横向模式或纵向)并旋转手机时,文本将丢失.

  • 如何防止文本丢失?

底层代码:

  • onCreate() - > setContentView(myLayout) - >使用findViewById()获取对UI小部件的引用
  • onConfigurationChanged() - > setContentView(myLayout) - >使用findViewById()获取对UI小部件的引用

我的猜测是onConfigurationChanged()中的setContentView()会导致数据丢失.我认为我需要做的是在发生这种情况之前从EditText中获取数据.但是怎么样?

android

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

是float(0)SQL数据类型有效吗?

我认为浮动(n)中n的最小值必须为1.

我之前没有看过"float(0)"数据类型,所以我想知道它是否有效.

sql

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

需要帮助清除活动之间的触摸事件

场景:

有两个活动...活动A有一个图像按钮,用于启动在屏幕上显示活动B的意图.活动B有一个图像按钮来完成()本身并导致活动A被显示.这些按钮位于每个活动的相同位置

问题:

在活动B中,当我双击按钮(而不是单击)时,活动A变为可见但很快再次显示活动B!

第二个触摸事件似乎贯穿于活动A,似乎我可以通过清除活动A的onCreate()中的一些触摸缓冲区来解决这个问题.

如何才能做到这一点?还是有另一个修复?

我在模拟器(2.2)和手机(2.3.3)上重现了这一点

android

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

标签 统计

android ×8

gradlew ×1

java ×1

mpandroidchart ×1

sql ×1

sqlite ×1

static-array ×1