Java Can';I don’我不想把字符串设成任何我想要的
这就是整个Java类。问题在于:答案列表。添加(位置、项目);已激活。若我将项更改为“-”,那个么它可以工作,但若我发送任何其他字符串,它就不能工作。真奇怪。但我希望能够添加项目。我该怎么办 现在,应用程序崩溃时,该功能的添加应该发生 公共类SinglePlayerQuickGame扩展活动{Java Can';I don’我不想把字符串设成任何我想要的,java,android,Java,Android,这就是整个Java类。问题在于:答案列表。添加(位置、项目);已激活。若我将项更改为“-”,那个么它可以工作,但若我发送任何其他字符串,它就不能工作。真奇怪。但我希望能够添加项目。我该怎么办 现在,应用程序崩溃时,该功能的添加应该发生 公共类SinglePlayerQuickGame扩展活动{ databaseTest testDatabase=new databaseTest(); boolean alternativeIsChosen; //är true om ett alternativ
databaseTest testDatabase=new databaseTest();
boolean alternativeIsChosen; //är true om ett alternativ har valts
int chosenAlternative; //om ett alternativ har valts representer
String alternativeText;
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_single_player_quick_game);
alternativeIsChosen=false;
chosenAlternative=-1;
alternativeText="";
final ListView AnswerListview = (ListView) findViewById(R.id.chosenAlternatives);
final ListView alternativeListview= (ListView) findViewById(R.id.alternatives);
final ArrayList<String> answerList = new ArrayList<String>();
final ArrayList<String> alternativeList=new ArrayList<String>();
for(int i=0; i<testDatabase.alternatives.getSize();i++){
alternativeList.add(testDatabase.alternatives.getNameOnAPosition(i));
}
answerList.add("-");
for(int i=0; i<testDatabase.chosenAlternatives.getSize();i++){
answerList.add(testDatabase.chosenAlternatives.getNameOnAPosition(i));
answerList.add("-");
final StableArrayAdapter answerAdapter = new StableArrayAdapter(this, android.R.layout.simple_list_item_1, answerList);
AnswerListview.setAdapter(answerAdapter);
final StableArrayAdapter alternativeAdapter= new StableArrayAdapter(this,android.R.layout.simple_list_item_1,alternativeList );
alternativeListview.setAdapter(alternativeAdapter);
AnswerListview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1)
@SuppressLint("NewApi")
public void onItemClick(AdapterView<?> parent, final View view,
final int position, long id) {
final String item=(String) alternativeListview.getItemAtPosition(0);
view.animate().setDuration(0).alpha(0)
.withEndAction(new Runnable() {
@SuppressWarnings("null")
@Override
public void run() {
if(alternativeIsChosen){
answerList.add(position, item);
answerAdapter.notifyDataSetChanged();
alternativeList.remove(chosenAlternative);
alternativeAdapter.notifyDataSetChanged();
alternativeIsChosen=false;
}
view.setAlpha(1);
}
});
}
});
alternativeListview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1)
@SuppressLint("NewApi")
public void onItemClick(AdapterView<?> parent, final View view,
final int position, long id) {
final String answerItem = (String) parent.getItemAtPosition(position);
view.animate().setDuration(0).alpha(0)
.withEndAction(new Runnable() {
@Override
public void run() {
alternativeIsChosen=true;
chosenAlternative=position;
answerAdapter.notifyDataSetChanged();
alternativeAdapter.notifyDataSetChanged();
view.setAlpha(1);
}
});
}
});
}
public final String getAlternativeText(){
return alternativeText;
}
private class StableArrayAdapter extends ArrayAdapter<String> {
HashMap<String, Integer> mIdMap = new HashMap<String, Integer>();
public StableArrayAdapter(Context context, int textViewResourceId,
List<String> objects) {
super(context, textViewResourceId, objects);
for (int i = 0; i < objects.size(); ++i) {
mIdMap.put(objects.get(i), i);
}
}
@Override
public long getItemId(int position) {
String item = getItem(position);
return mIdMap.get(item);
}
@Override
public boolean hasStableIds() {
return true;
}
}
您不能更改它,因为它声明为final引用变量声明为final并分配给一个对象,而该引用变量不能分配给另一个对象。因此,变量s只能引用它已保存的内容。不清楚问题究竟是什么 然而,从代码来看,这极不可能是“将字符串设置为变量”的结果
这里还有其他问题……您没有提供足够的信息让我们来解决。您需要提供的第一件事是导致崩溃的异常的stacktrace。是的,但如果我将字符串更改为其他内容,则不会。这可能是因为您的项是字符串。您不能强制转换到您想要的任何对象。“它不工作”几乎没有足够的信息来帮助您诊断问题。这就像对医生说“我不好”,但不让他检查您。它以什么方式不工作?不工作的代码到底是什么样的?如果s是最终字符串s=(字符串)alternativeListview.getItemAtPosition(position);它不起作用。或者,如果我将s设置为等于变量的字符串,它也不起作用。如果不起作用,我的意思是,当到达此onItemClick()函数时,应用程序崩溃。您添加到alternativeList的对象的类型是什么?如何将list元素设置为等于全局变量(即字符串)的值?我们在java中没有全局变量,你是说静态变量吗?不只是普通变量将列表元素设置为字符串形式的特定变量:list.set(index,string);//索引列表中的哪个元素等于字符串变量这是我一直在尝试的。当我使用字符串变量时,它不起作用。当我试图直接编写字符串(只是为了尝试)时,字符串“-”工作正常。但是当我编写诸如“m”、“hello”或“/”之类的字符串时没用。你知道问题是什么吗?我怎么解决?
06-10 10:43:36.009: D/AndroidRuntime(618): Shutting down VM
06-10 10:43:36.009: W/dalvikvm(618): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
06-10 10:43:36.159: E/AndroidRuntime(618): FATAL EXCEPTION: main
06-10 10:43:36.159: E/AndroidRuntime(618): java.lang.NullPointerException
06-10 10:43:36.159: E/AndroidRuntime(618): at com.example.rankingquiz2.SinglePlayerQuickGame$StableArrayAdapter.getItemId(SinglePlayerQuickGame.java:198)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.widget.AbsListView.obtainView(AbsListView.java:2292)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.widget.ListView.makeAndAddView(ListView.java:1769)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.widget.ListView.fillDown(ListView.java:672)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.widget.ListView.fillSpecific(ListView.java:1330)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.widget.ListView.layoutChildren(ListView.java:1600)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.widget.AbsListView.onLayout(AbsListView.java:2106)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.view.View.layout(View.java:13754)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.view.ViewGroup.layout(ViewGroup.java:4364)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.widget.LinearLayout.onLayout(LinearLayout.java:1420)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.view.View.layout(View.java:13754)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.view.ViewGroup.layout(ViewGroup.java:4364)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1638)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.widget.LinearLayout.onLayout(LinearLayout.java:1422)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.view.View.layout(View.java:13754)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.view.ViewGroup.layout(ViewGroup.java:4364)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.widget.LinearLayout.onLayout(LinearLayout.java:1420)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.view.View.layout(View.java:13754)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.view.ViewGroup.layout(ViewGroup.java:4364)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.view.View.layout(View.java:13754)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.view.ViewGroup.layout(ViewGroup.java:4364)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.widget.LinearLayout.onLayout(LinearLayout.java:1420)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.view.View.layout(View.java:13754)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.view.ViewGroup.layout(ViewGroup.java:4364)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.view.View.layout(View.java:13754)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.view.ViewGroup.layout(ViewGroup.java:4364)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1868)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1689)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4214)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.view.Choreographer.doCallbacks(Choreographer.java:555)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.view.Choreographer.doFrame(Choreographer.java:525)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.os.Handler.handleCallback(Handler.java:615)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.os.Handler.dispatchMessage(Handler.java:92)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.os.Looper.loop(Looper.java:137)
06-10 10:43:36.159: E/AndroidRuntime(618): at android.app.ActivityThread.main(ActivityThread.java:4745)
06-10 10:43:36.159: E/AndroidRuntime(618): at java.lang.reflect.Method.invokeNative(Native Method)
06-10 10:43:36.159: E/AndroidRuntime(618): at java.lang.reflect.Method.invoke(Method.java:511)
06-10 10:43:36.159: E/AndroidRuntime(618): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
06-10 10:43:36.159: E/AndroidRuntime(618): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
06-10 10:43:36.159: E/AndroidRuntime(618): at dalvik.system.NativeStart.main(Native Method)
06-10 10:43:36.269: D/dalvikvm(618): GC_CONCURRENT freed 202K, 4% free 6282K/6535K, paused 74ms+9ms, total 200ms
06-10 10:43:36.279: D/dalvikvm(618): WAIT_FOR_CONCURRENT_GC blocked 49ms