小编Sim*_*mon的帖子

Android按属性排序arraylist

我想ArrayList按一个属性排序.这是我的代码......

public class FishDB{

    public static Object Fish;
    public ArrayList<Fish> list = new ArrayList<Fish>();

    public class Fish{
        String name;
        int length;
        String LatinName;
        //etc. 

        public Vis (String name) {
            this.name = name;
        }
    }

    public FishDB() {
        Fish fish;

        fish = new Fish("Shark");
        fish.length = 200;
        fish.LatinName = "Carcharodon Carcharias";

        fish = new Fish("Rainbow Trout");
        fish.length = 80;
        fish.LatinName = "Oncorhynchus Mykiss";

        //etc.
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我想要ArrayList通过属性对此进行排序,例如latinname在另一个活动中.但我不知道该怎么做.有人知道吗?

java sorting android arraylist

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

获取音频文件的持续时间

我制作了一个录音机应用程序,我想在列表视图中显示录音的持续时间.我保存这样的录音:

MediaRecorder recorder = new MediaRecorder();
recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
folder = new File(Environment.getExternalStorageDirectory()
            + File.separator + "Audio recordings");
String[] files = folder.list();
    int number = files.length + 1;
    String filename = "AudioSample" + number + ".mp3";
    File output = new File(Environment.getExternalStorageDirectory()
            + File.separator + "Audio recordings" + File.separator
            + filename);
    FileOutputStream writer = new FileOutputStream(output);
    FileDescriptor fd = writer.getFD();
    recorder.setOutputFile(fd);
    try {
        recorder.prepare();
        recorder.start();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        Log.e(LOG_TAG, "prepare() failed");
        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

如何获得此文件的持续时间(以秒为单位)? …

audio android duration audio-recording

25
推荐指数
6
解决办法
5万
查看次数

Android如何排序JSONArray的JSONObjects

我制作了一个jsonobjects的jsonarray.现在我需要根据jsonobjects中的值对JSONArray进行排序.以前我对自定义对象的ArrayLists进行了排序,如下所示:

比较:

public class KreeftenComparatorLA implements Comparator<Kreeft> {
    public int compare(Kreeft left, Kreeft right) {
        return left.latijnseNaam.compareTo(right.latijnseNaam);
    }
}
public class KreeftenComparatorNL implements Comparator<Kreeft> {
    public int compare(Kreeft left, Kreeft right) {
        return left.naam.compareTo(right.naam);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后对arraylist进行排序:

Collections.sort(db.lijst, new KreeftenComparatorLA());
Run Code Online (Sandbox Code Playgroud)

要么:

Collections.sort(db.lijst, new KreeftenComparatorNL());
Run Code Online (Sandbox Code Playgroud)

但是当我像JSONArray那样尝试同样的事情时(JA =我的jsonarray)

Collections.sort(JA, new KreeftenComparatorNL());
Run Code Online (Sandbox Code Playgroud)

Collections.sort给出错误:

类型集合中的方法sort(List,Comparator)不适用于参数(JSONArray,ThisActicity.KreeftenComparatorNL)

有人知道如何对JSONArray进行排序吗?

java sorting android json

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

Android保存自定义对象数组

我有一个关于保存自定义对象的arraylist的问题.我有一个名为notitie的课程:

public class Notitie implements Serializable{

private String titel = "";
private String type = "";
private String datum = "";

public void setTitel (String titel){
    this.titel = titel;
}
public String getTitel(){
    return titel;
}
public void setType (String type){
    this.type = type;
}
public String getType(){
    return type;
}
public void setDatum (String datum){
    this.datum = datum;
}
public String getDatum(){
    return datum;
}
}
Run Code Online (Sandbox Code Playgroud)

我创建了一些Notitie的对象,并将它们添加到我的名为notities的arraylist中

ArrayList<Notitie> notities = new ArrayList<Notitie>();

Notitie notitie1 = new Notitie();
notitie1.setTitel("Meting");
notitie1.setType("Watermeting"); …
Run Code Online (Sandbox Code Playgroud)

android arraylist object save

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

带有链接的Textview onclicklistener

我有一个带有锚点的html字符串的textview.当我单击textview时我想调用例如一个名为A的方法,当我单击textview中的一个链接时,我想调用一个名为B的方法.我得到了这个工作但是我遇到了一个问题:当我点击一个链接时,方法调用B,但也调用方法A. 当我点击链接时,如何确保只调用方法B而不是B和A?

我的代码:

for (int i = 0; i < ingevoegd.length(); i++) {
        JSONObject soortingevoegd = ingevoegd.getJSONObject(i);
        String type = soortingevoegd.getString("type");         
        if (type.equals("Vis")) {
            String link = "<a href = 'com.aquariumzoeken.pro://Soortweergave?selected="
                    + naam + "&type=Vis" + "'>" + naam + "</a>";
            text = text.replaceAll(naam, link);
        }
    }

    TextView texttv = (TextView) v.findViewById(R.id.textviewer);   


    texttv.setText(Html.fromHtml(text));
    texttv.setMovementMethod(LinkMovementMethod.getInstance());
Run Code Online (Sandbox Code Playgroud)

和textview onclicklistener:

texttv.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            try {

                switchToEditMode sw = new switchToEditMode();
            } catch (JSONException e) {
                // TODO Auto-generated …
Run Code Online (Sandbox Code Playgroud)

android hyperlink textview

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

Android设置自定义标题栏的高度

我做了一个自定义标题栏.标题栏中是两个彼此相邻的图像视图,下面是一个文本视图.它工作正常,但我只看到textview的顶部.所以我认为标题栏在底部被裁剪.有人知道如何设置自定义标题栏的高度吗?编辑:我的自定义标题栏:

<?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="45dip"
    android:orientation="vertical"
    android:id="@+id/header_root"> 
<RelativeLayout 
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
<ImageView
    android:id="@+id/header_image"
    android:layout_width="wrap_content"
    android:layout_height="27dip"
    android:src="@drawable/header_image"
    />

<ImageView
    android:id="@+id/options"
    android:layout_width="wrap_content"
    android:layout_height="27dip"
    android:layout_margin="-8dip"
    android:layout_toRightOf="@+id/header_image"
    android:src="@drawable/options" />

</RelativeLayout>
<TextView 
    android:text="Vissenencyclopedie"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:textSize="15dp"
    android:id="@+id/titel"
    android:layout_marginTop="-7dip"
    />
</LinearLayout>  
Run Code Online (Sandbox Code Playgroud)

height android titlebar

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

为什么在停止录制音频时会出现 IllegalStateException?

我想用麦克风录制音频并保存音频文件。开始录制工作正常,但是当我尝试停止录制时,模拟器会出现强制关闭错误。堆栈跟踪:

01-09 18:16:59.075: E/AndroidRuntime(831): FATAL EXCEPTION: main
01-09 18:16:59.075: E/AndroidRuntime(831): java.lang.IllegalStateException
01-09 18:16:59.075: E/AndroidRuntime(831):  at android.media.MediaRecorder.stop(Native Method)
01-09 18:16:59.075: E/AndroidRuntime(831):  at com.example.voice.recorder.MainActivity.StopRecording(MainActivity.java:45)
01-09 18:16:59.075: E/AndroidRuntime(831):  at com.example.voice.recorder.MainActivity$1.onClick(MainActivity.java:76)
01-09 18:16:59.075: E/AndroidRuntime(831):  at android.view.View.performClick(View.java:3511)
01-09 18:16:59.075: E/AndroidRuntime(831):  at android.view.View$PerformClick.run(View.java:14105)
01-09 18:16:59.075: E/AndroidRuntime(831):  at android.os.Handler.handleCallback(Handler.java:605)
01-09 18:16:59.075: E/AndroidRuntime(831):  at android.os.Handler.dispatchMessage(Handler.java:92)
01-09 18:16:59.075: E/AndroidRuntime(831):  at android.os.Looper.loop(Looper.java:137)
01-09 18:16:59.075: E/AndroidRuntime(831):  at android.app.ActivityThread.main(ActivityThread.java:4424)
01-09 18:16:59.075: E/AndroidRuntime(831):  at java.lang.reflect.Method.invokeNative(Native Method)
01-09 18:16:59.075: E/AndroidRuntime(831):  at java.lang.reflect.Method.invoke(Method.java:511)
01-09 18:16:59.075: E/AndroidRuntime(831):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
01-09 18:16:59.075: E/AndroidRuntime(831):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
01-09 18:16:59.075: …
Run Code Online (Sandbox Code Playgroud)

audio android illegalstateexception android-audiorecord

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

FastAPI 发现我的 JSON 对象数组是无效列表

我正在使用 FastAPI,并尝试将 JSON 对象的 JSON 数组发送到正文中的帖子端点。我的端点定义为:

@router.post("/create_mails")
def create_mails(notas: List[schemas.Nota], db: Session = Depends(get_db)):
Run Code Online (Sandbox Code Playgroud)

我在《邮递员》中的身体看起来像:

{
    "notas": [{"a":"1","b":"2","c":"3","d":"4"},
              {"a":"1","b":"2","c":"3","d":"4"}]
}
Run Code Online (Sandbox Code Playgroud)

但是,我不断从 FastAPI 收到 422 无法处理的实体错误,错误详细信息:
值不是有效列表

我还使用修改后的端点对其进行了测试:

@router.post("/create_mails")
def create_mails(notas: List[str] = Body([]), db: Session = Depends(get_db)):
Run Code Online (Sandbox Code Playgroud)

并使用简单的字符串数组,但返回相同的错误。

我是否缺少 FastAPI 对有效列表的定义?

python json starlette fastapi

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

点击意图的小工具没有看到

我已经构建了一个带有imageview的小部件.我想当用户点击imageview时,将启动一个活动.该活动从intent(字符串,整数)中获取额外内容.它几乎可以工作,但是当小部件更新时,旧的附加内容是获取,而不是AppWidgetProvider中给出的新附加内容.我怎么解决这个问题?

先谢谢,西蒙

的AppWidgetProvider:

package com.aquariumzoekenpro.android;

import java.io.InputStream;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;

import com.aquariumzoekenpro.android.VissenDB.Vis;

import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.widget.RemoteViews;

public class Widget extends AppWidgetProvider {
    public static final String PREFS_NAME = "Vissen";
    static SharedPreferences sharedPreferences;
    PendingIntent pendingintent;
    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds){       
//      final int N = appWidgetIds.length;

            sharedPreferences = context.getSharedPreferences(PREFS_NAME, 0);            
            int rbitem = sharedPreferences.getInt("RBitem", 0);
// …
Run Code Online (Sandbox Code Playgroud)

android android-widget android-intent android-pendingintent

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