我想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
在另一个活动中.但我不知道该怎么做.有人知道吗?
我制作了一个录音机应用程序,我想在列表视图中显示录音的持续时间.我保存这样的录音:
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)
如何获得此文件的持续时间(以秒为单位)? …
我制作了一个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进行排序吗?
我有一个关于保存自定义对象的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) 我有一个带有锚点的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) 我做了一个自定义标题栏.标题栏中是两个彼此相邻的图像视图,下面是一个文本视图.它工作正常,但我只看到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) 我想用麦克风录制音频并保存音频文件。开始录制工作正常,但是当我尝试停止录制时,模拟器会出现强制关闭错误。堆栈跟踪:
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) 我正在使用 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 对有效列表的定义?
我已经构建了一个带有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)