如何创建整数和字符串对的列表(或其他类型的容器),允许两个对中的重复项并且可以按整数值排序?
我需要用名称(字符串)和评分(整数)对填充容器,容器必须允许名称和评分中的重复值,我需要按评分值对此列表进行排序.
我尝试使用SortedMap但不允许重复值:
SortedMap<Integer,String> sm=new TreeMap<Integer, String>();
sm.put(23, "Peter");
sm.put(11, "Tony");
sm.put(110, "Claire");
sm.put(13, "ferca");
sm.put(55, "Julian");
sm.put(13, "Pedro");
Run Code Online (Sandbox Code Playgroud)
在这个例子中,ferca和Pedro具有相同的得分值,这是我需要允许的,但是SortedMap用"Pedro"覆盖"ferca".
这样做的最佳容器类型是什么?
我正在尝试Spinner在我的代码中扩展Android类来实现一个新函数,但由于某种原因,这不起作用.
这是扩展类:
import android.content.Context;
import android.widget.AdapterView;
import android.widget.Spinner;
public class CustomSpinner extends Spinner {
public CustomSpinner(Context context) {
super(context);
}
public void setSelectionByItemId(AdapterView<?> parent, long id){
for (int i = 0; i < parent.getCount(); i++) {
long itemIdAtPosition = parent.getItemIdAtPosition(i);
if (itemIdAtPosition == id) {
parent.setSelection(i);
break;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我实例化这个类的方式:
CustomSpinner spinner = (CustomSpinner) findViewById(R.id.sphofentries);
Run Code Online (Sandbox Code Playgroud)
这在运行时给我一个错误.
所有这些都是R.id.sphofentries在我的布局中声明为微调器.
但是现在,如果我声明sphofentries为一个CustomSpinner运行时错误,就在我将布局设置为活动时:
setContentView(R.layout.settings);
Run Code Online (Sandbox Code Playgroud)
另外我很确定问题是我需要声明sphofentries为CustomSpinner因为如果我这样做:
CustomSpinner spinner = new CustomSpinner(this);
spinner …Run Code Online (Sandbox Code Playgroud) 我正在开发一个问题游戏,如果答案是正确的话我想将答案按钮按下背景颜色变为绿色,或者如果在用户按下按钮时答案错误则将红色变为红色.
实际上我有一个custom_button.xml,我分配给布局中的按钮:
<Button
android:id="@+id/la"
android:width="63dp"
android:height="65dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/la"
android:tag="@string/la"
android:layout_toRightOf="@+id/fa"
**android:background="@drawable/custom_button"**
android:layout_margin="3dp"
/>
Run Code Online (Sandbox Code Playgroud)
有没有办法在用户按下按钮时更改按钮的按下背景?
我尝试在按钮OnClickListener中使用setBackgroundDrawable(),但这会更改用户下次单击按钮时的按钮行为,而不是实际的按钮行为.
bt.setBackgroundDrawable(getResources().getDrawable(R.drawable.custom_button_fail));
Run Code Online (Sandbox Code Playgroud)
提前致谢!