我的所有学生的数据都是变量,即名字,姓氏,身份证。我从列表视图中检索到了。现在我想从s变量中检索数据到单个字符串变量,比如,我想将第一个名称存储在一个字符串中,将姓氏存储在另一个字符串中。就像我在下面做的那样。但它不起作用。
我试图迭代但是它给出错误..任何人都建议我如何从s变量中检索值。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.thrd);
Log.i("INFO","ALL DETAILS");
mydb=new MyDataBase(four.this);
mydb.openDB();
lv = (ListView)findViewById(R.id.listView1);
save = (Button) findViewById(R.id.button2);
save.setOnClickListener(new OnClickListener(){
public void onClick(View arg0) {
long[] v= lv.getCheckedItemIds();
String s1=v.toString();
int h =lv.getCount();
for(int i=0;i<lv.getCount();i++) {
Object p2 = lv.getItemAtPosition(i);
String s=(String) p2.toString();
List<? extends Map<String, ?>> s4=(List<? extends Map<String, ?>>) p2;
SimpleAdapter mSchedule1 = new SimpleAdapter(four.this, s4, R.layout.col1,
new String[] {"clss","sec","_Sid","FName", "LName"}, new int[] {R.id.editText1, R.id.editText2,R.id.editText3,R.id.editText4,R.id.editText5});
lv1.setAdapter(mSchedule1);
EditText cls=(EditText)findViewById(R.id.editText1);
EditText sec=(EditText)findViewById(R.id.editText2);
EditText sid=(EditText)findViewById(R.id.editText3);
EditText fname=(EditText)findViewById(R.id.editText4);
EditText lanme=(EditText)findViewById(R.id.editText5);
final String cl=cls.getText().toString();
final String sec1=sec.getText().toString();
final String sid1=sid.getText().toString();
final String fn=fname.getText().toString();
final String ln=lanme.getText().toString();
final String p="present";
Toast.makeText(four.this, sec1, Toast.LENGTH_LONG).show();
}
}
});
showall=(Button)findViewById(R.id.button1);
showall.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
ArrayList<HashMap<String,String>> p2 = mydb.getAllSDetails();
SimpleAdapter mSchedule = new SimpleAdapter(four.this, p2, R.layout.column,
new String[] {"_Sid","FName", "LName"}, new int[] {R.id.txtfname, R.id.txtlname,R.id.txtage});
lv.setAdapter(mSchedule);
lv.setOnItemClickListener(select);
// int h= lv.getCount();
}
});
}
public OnItemClickListener select=new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
int idd[] = mydb.gettingId();
str = idd[position];
}
};
我的错误日志
12-29 16:38:51.849:E / AndroidRuntime(561):致命异常:主要 12-29 16:38:51.849:E / AndroidRuntime(561):java.lang.ClassCastException:java.util.HashMap 12-29 16:38:51.849:E / AndroidRuntime(561):at com.android.four $ 2.onClick(four.java:85) 12-29 16:38:51.849:E / AndroidRuntime(561):在android.view.View.performClick(View.java:2408) 12-29 16:38:51.849:E / AndroidRuntime(561):在android.view.View $ PerformClick.run(View.java:8816) 12-29 16:38:51.849:E / AndroidRuntime(561):在android.os.Handler.handleCallback(Handler.java:587) 12-29 16:38:51.849:E / AndroidRuntime(561):在android.os.Handler.dispatchMessage(Handler.java:92) 12-29 16:38:51.849:E / AndroidRuntime(561):在android.os.Looper.loop(Looper.java:123) 12-29 16:38:51.849:E / AndroidRuntime(561):在android.app.ActivityThread.main(ActivityThread.java:4627) 12-29 16:38:51.849:E / AndroidRuntime(561):at java.lang.reflect.Method.invokeNative(Native Method) 12-29 16:38:51.849:E / AndroidRuntime(561):at java.lang.reflect.Method.invoke(Method.java:521) 12-29 16:38:51.849:E / AndroidRuntime(561):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868) 12-29 16:38:51.849:E / AndroidRuntime(561):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 12-29 16:38:51.849:E / AndroidRuntime(561):at dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:0)
由于问题还不清楚,不知道我的回答是否会对你有所帮助,因为我不确定你的要求是什么。如果您正在讨论将String
分成几部分,那么您可以使用String
的{{1}}方法。参数可以是随机分隔符,例如逗号。以下代码将使用逗号分隔的单个split(String regex)
生成String
数组:
String
很抱歉,如果这不是你要求的,但希望这会有所帮助。
答案 1 :(得分:0)
(评论作为格式化的答案。)
问题可能是两个地方之一:
ArrayList<HashMap<String,String>> p2 = mydb.getAllSDetails();
SimpleAdapter mSchedule = new SimpleAdapter(four.this, p2, R.layout.column,
new String[] {"_Sid","FName", "LName"}, new int[] {R.id.txtfname,
R.id.txtlname,R.id.txtage});
或在这里:
Object p2 = lv.getItemAtPosition(i);
String s = (String) p2.toString();
List<? extends Map<String, ?>> s4 = (List<? extends Map<String, ?>>) p2;
对HashMap
的明确引用让我怀疑前者,但我们无从知晓:你仍然没有提供完整的信息。日志行:
E/AndroidRuntime(561): at com.android.four$2.onClick(four.java:85) 12-29 16:38:51.849:
只是有所帮助,因为我们不知道four.java
是什么,或者第85行是什么 - 只有你这样做。