2011-12-29 3 views
0

나는 모든 학생 데이터를 변수, 즉 이름, 성, ID로 유지합니다. 나는 list.now에서 검색 한 같은 개별 문자열 변수에 변수를 데이터를 검색 할 싶어요, 한 문자열에 이름을 저장하고 싶습니다, 다른 string.like 성 마지막으로 그 일을하지 않았다.Android : 문자열 변수 또는 객체에서 값을 가져 오는 방법

나는 iterate를 시도했으나 오류가 발생했다. 어떤 사람이 나에게 변수로부터 값을 검색 할 수있는 방법을 제안했다.

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) : 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) : java.lang.reflect.Method.invokeNative (기본 메소드) 12-29 16 : 38 : 51.849 : E/AndroidRuntime (561) : java.lang.reflect.Method.invoke (Method.java:521) 12-29 16 : 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 (기본 메소드)

+0

은 맞춤 어댑터의 편집 텍스트입니다 .. .. "저장"버튼도 있습니까? u는 단순히 pastebin에 전체 코드를 게시해야합니다. –

+1

"오류가 있습니까?" 아마도 그 오류를 공유하는 것이 중요 할 것입니다. 또한, toString은 문자열을 반환하고, 캐스팅은 필요하지 않습니다. –

+0

@ mak_just4anything edittext는 col1.xml file.button에 저장됩니다. save는 thrs.xml 파일에 있으며, oncreate()에서 R.layout.thrd에서 검색합니다. 코드를 편집했습니다. –

답변

0

질문이 꽤 불투명하기 때문에 내 대답이 도움이 될지 모르겠다. 내가 너에게 정확히 무엇을 요구하는지 모르겠다. 부품으로 String을 깨는 것에 대해 이야기하고 있다면 Stringsplit(String regex) 메소드를 사용할 수 있습니다. 매개 변수는 임의의 구분 문자 (예 : 쉼표) 일 수 있습니다. 당신이 요구 한 일이 아니다

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

죄송 경우,하지만이 도움이되기를 바랍니다 : 다음 코드는 쉼표로 구분 된 항목 하나 String에서 String 배열을 만들 것입니다.

+0

suggestion.my 변수에 대한 감사는 {Fname = "fdg", _ id = "9"}. 이제 문자열 f = "fdg"와 같은 개별 문자열에이 값을 저장하려고합니다. int i = 9.i는 String을 사용하여 시도했습니다. .split (",")하지만 그것의 NT 작동합니다. –

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에 대한 명시 적 참조가 나를 의심한다 전자는 알 수 없지만 완전한 정보를 제공하지 못합니다. 로그 라인 : - 단지 당신이 할 우리가 four.java가 무엇인지, 또는 어떤 라인 (85) 것은하지 않기 때문에

E/AndroidRuntime(561): at com.android.four$2.onClick(four.java:85) 12-29 16:38:51.849: 

은 다소 도움이됩니다.

+0

나는 이것을 체크 아웃 할 것이다. –

관련 문제