2011-12-29 70 views
0

我的所有學生數據都是s變量,即名,姓,id。我已經從列表視圖中檢索。現在我想從s變量中檢索數據到單個字符串變量,比如,我想在一個字符串中存儲名字,在另一個字符串中存儲姓氏。像我在下面做的那樣。但它不工作。Android:如何從字符串變量或對象檢索值

我試圖重複,但也給它的任何error..can一個建議我我如何可以檢索從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):在com.android.four $ 2.onClick(four.java:85) 12-29 16 :38:51.849:E/AndroidRuntime(561):at android.view.View.performClick(View.java:2408) 12-29 16:38:51.849:E/AndroidRuntime(561):at android.view.View $ PerformClick.run(View.java:8816) 12-29 16:38:51.849:E/AndroidRuntime(561):at 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):at android.app.ActivityThread.main (ActivityThread.java:4627) 12-29 16:38:51.849:E/AndroidRuntime(561):在java.lang.reflect.Method.invokeNative(本機方法) 12-29 16:38:51.849:E/AndroidRuntime(561):12-29 16日java.lang.reflect.Method.invoke(Method.java:521):38:51.849:E/AndroidRuntime(561):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868) 12-29 16:38:51.849:E/AndroidRuntime(561):在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

是自定義適配器中的edittext ??並且按鈕「save」也是?你應該把整個代碼放在pastebin上。 – 2011-12-29 05:00:30

+1

「它給錯誤了?」也許分享這個錯誤是有價值的。另外,'toString'返回一個字符串,不需要轉換。 – 2011-12-29 05:03:08

+0

@ mak_just4anything edittext在col1.xml file.button保存在thrs.xml文件,我在R.layout.thrd在oncreate()。我編輯我的代碼。 – 2011-12-29 10:29:12

回答

0

由於問題很不清楚,不知道我的答案是否會有幫助因爲我不確定你要求的是什麼。如果您正在討論將String分成幾部分 - 您可以使用Stringsplit(String regex)方法。該參數可以是一個隨機分隔符,例如逗號。下面的代碼將使String陣列從一個單一的String用逗號分隔的項目:如果

String[] sArray = string.split(","); 

對不起這不是你問什麼,但希望這有助於。

+0

thanks for suggestion.my變量s包含{Fname =「fdg」,_ id =「9」}。現在我想將這些值存儲在單個字符串中,如String f =「fdg」,int i = 9.i試過使用String .split(「,」)但它的工作。 – 2011-12-29 11:20:03

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是 - 只有你。

+0

我會看看這個。 – 2011-12-30 03:08:14