èæ¯
ããæŽããæ¥ãç§ã¯è±èªãåŠã³å§ããããšã決ããå匷ããçŽåã«ãã®èšèªãæããŠããå
çãšçžè«ããŸããã ç§ã¯åœŒããã€ãŠåŸãçµéšãç§ãšå
±æãããšæã£ãã ãã®çµæãäž»ã«è±èªã®ãµã€ãã蚪ãããšãã«ç¥èã䜿çšããŠããææ³ãåãäžããã®ã§ãç§ã¯èšèªã®èšèã§å匷ãå§ããã®ãæåã§ãããšåœŒã«åæããŸããã 圌ã¯ïŒå°ãªããšãç§ã«ãšã£ãŠïŒéåžžã«èå³æ·±ãå匷æ¹æ³ãææ¡ããŸããã ãããšããèšèãèŠããŠããããã«ã圌ã¯æ®éã®çŽãåãããããçåŽã§çããé·æ¹åœ¢ã«äžŠã¹ãŠåãåãããã®é·æ¹åœ¢ã®çåŽã«è±èªã®åèªãæžããããçæ¹ã®ç¿»èš³ã§ããã®åŸã«ç®±ãåããçµæã®ã«ãŒããããã«å
¥ããŠãäžã€äžã€æ··ããŠåãé€ããåèªãèŠãŠç¿»èš³ãèšããŸããã
ãã®æé ãæ¯æ¥1ã2æéãå®æçã«å®è¡ãããã¡ã€ã«ãã£ãããããè£å
ãããšãèšèãããèŠããããŸãã
ãã以æ¥ãç§ã¯åžžã«ããããããšã決ããè¿ãå°æ¥ãèªåã®ããã«è±èªã§èªã¿å§ããããã«ãªããŸããïŒ ãããããã°ããããŠãç§ã¯ã«ãŒããåã£ãŠæéãç¡é§ã«ããããšã«é£œãå§ããŸãããåæã«ãç§ã¯åžžã«çµ¶å¯Ÿã«æ¬ ããŠããŸããããã®ç¬éãç§ã¯æèã«æãããŸãããAndroid OSçšã®ããã°ã©ã ãäœæããŠã¿ãŸãããïŒãã®ã·ã¹ãã ã§ïŒãåæ§ã®æ©èœãå®è¡ããŸãïŒ
ãããžã§ã¯ããå§ãŸã£ãã®ã¯ãã®ç¬éããã§ããããååã¯æãã€ããŸããã§ããã
ç®ç
ãã®ãããžã§ã¯ãã®ç®æšã¯ãåœåããã¡ã€ã«ãã£ãããããžã®åèªã®è¿œå ãšãã®ãããªã掻çšãèªååããããšã§ããããåŸã«ããã€ãã®ã¢ã€ãã¢ã蚪ãããããžã§ã¯ããéçºããããšã¯éåžžã«èå³æ·±ããã®ã§ãããã2é±éåŸã«ã¯éå±ã«ãªãã以åã®ãã¹ãŠãšåæ§ã«éå±ããå®å
šã«æŸæ£ããŸãããç§ã¯ããããããªãã£ãã®ã§ããã®èšäºã®èè
ãšããŠèªåèªèº«ãè©ŠããŠããããã¯ãŒã¯ããã°ã©ãã³ã°ãšAndroidã®ããã°ã©ãã³ã°ã®åéã§ã®çµéšãå
±æããããšã«ããŸããã ãã®èšäºã§ã¯ãå¯èœãªéãããã®ããã°ã©ã ãäœæããããã®æé å
šäœãã¹ãããããšã«èª¬æããããšããŸãã
ããã°ã©ã
ãŸããç§ãäœæãã補åã®è©³çŽ°ã説æããæ©èœãæ€èšããŸãããã®åŸãèå³ããã人ã¯èª°ã§ããã®å¥è·¡ã®äœæã«ã€ããŠããã«èªãããšãã§ããŸãã
説æ
ç§ãæåã«äŒãããããšã¯ãã¡ãã¥ãŒã«ã€ããŠã§ããã§ããã ãé
åçãªãã®ã«ããããšããŸãããç§ã¯ãã€ããçŽ æŽããããå³ãããŠããã®ã§ããããããããæ¥ããã®ã§ãã
ç»åã§ãããããã«ãç¹å¥ãªããšã¯äœããããŸãããããèšèã確èªããŸãã¯ãèšèããã¿ã³ãã¯ãªãã¯ãããšãããã°ãµãã¡ãã¥ãŒã衚瀺ãããŸãã
äžã®ç»åãããããããã«ããã¢ã«ãã¡ãããé ãããéé ãããã©ã³ãã ãã®åãã¿ã³ã«ã¯åãããããã£ããããŸãã ãã¹ãŠç¹å¥ãªã+ãèšå·ã§ããŒã¯ããéããšèšå·ãã-ãã«çœ®ãæããããŸãã å±éãããã¡ãã¥ãŒã®ããããã®ã¢ã€ãã ãã¯ãªãã¯ãããšãå
ã®äœçœ®ã«æããããŸããŸãã
ãã¹ãã«åæ ŒããåããŸãã¯åèªãå€æŽããã³åé€ããåã«ãåèªãè¿œå ããå¿
èŠããããŸãããã®ããããã®ã¡ã«ããºã ãæ€èšããŸããããã®åã«ãã®ãããã¯ããå°ãæ»ã£ãŠãã¹ãŠãæ確ã«ãªãããã«ããå¿
èŠããããŸãã
ç§ãèšã£ãããã«ããããžã§ã¯ããäœæããåã«ãå€ãã®ã¢ã€ãã¢ã蚪ããŸãããããã®1ã€ã¯ãããã°ã©ã ã«åèªãè¿œå ããããšã®ç°¡çŽ åã§ãã 人ãæ zyãªçãç©ã§ããã誰ããæåã§ãã¡ã€ã«ãã£ãããããæåã§äœæããå¿
èŠãããããã§ã¯ãããŸãããç¹ã«ãã€ã³ã¿ãŒãããã®çºå±ãšé·è·é¢ã§ã®ããŒã¿è»¢éã®æ代ã«ã3ã€ã®ãã£ãŒã«ããå
¥åããå¿
èŠãããå Žåã¯ïŒè»¢åãèšå
¥ããå¿
èŠã¯ãããŸããïŒ
ã¢ã€ãã¢ãæãæµ®ãã³ãŸãããããã°ã©ã ã®ãŠãŒã¶ãŒãèªåã®ãã¡ã€ã«ãã£ãããããå
šäžçãšå
±æããŠã¿ãŸãããã ãããã£ãŠãåèªãèªåã®å人èŸæžã«è¿œå ããç¬éã«ããŠãŒã¶ãŒã¯æ°ã¥ããªããã¡ã«ïŒã€ã³ã¿ãŒãããæ¥ç¶ãããå ŽåïŒãµãŒããŒã«ã¢ããããŒãããããŒã¿ããŒã¹ã«ä¿åãããä»ã®ãŠãŒã¶ãŒãèªåã«è¿œå ããã®ãåŸ
æ©ããŸããåèªãè¿œå ããã¡ã«ããºã ã¯è€éã§ãªããåçŽã§ãããåäŸã§ãç解ã§ãããã®ã§ãã
ããã°ã©ã ã«ã¯ãåèªãå€æŽããã³åé€ããæ©èœããããŸãã ããã§ã¯ããã¹ãŠãéåžžã«ç°¡åã§ããç®çã®ã¡ãã¥ãŒé
ç®ãã¯ãªãã¯ãããšãã¢ã¯ãã£ããã£ãç§ãã¡ã®åã«éããåèªãã¢ã«ãã¡ãããé ã«äžŠã¹ãããŸãã åèªãåé€ããã³å€æŽããããã®ãŠã£ã³ããŠã¯ãå®éã«ã¯éãã¯ãªããåèªã®ä»ãããã¿ã³äžã®ã¢ã€ã³ã³ã ããªã®ã§ã1ã€ã®xmlãã¡ã€ã«ã䜿çšããŠããããäœæããŸããã
ãŠãŒã¶ãŒãåèªãå€æŽãããšãåèªãè¿œå ããããã®xmlãã¡ã€ã«ã䜿çšãããä»ã®æ©èœã§ã®ã¿ã3ã€ã®ãã£ãŒã«ããã¹ãŠã«å€ãå€ãå
¥åãããŸãã
æ°ããå€ãå
¥åããåŸã察å¿ãããã¿ã³ãã¯ãªãã¯ãããšããµãŒããŒäžã®ããŒã¿ããŒã¹ã«å€æŽãå ããããšãªããåèªãå€æŽãããŠãŠãŒã¶ãŒã®ããã€ã¹ã«ä¿åãããŸãã åèªãåèªã®åé€ãéåžžã«ç°¡åã§ãããã®ããã»ã¹ãè€éã«ããæ¹æ³ã¯æ³åã§ããŸããã
ç»åãããããããã«ããã¹ãŠã®åèªãäžåºŠã«åé€ããããšããååèªãåå¥ã«åé€ããããšãã§ããŸãããåé€ããåã«ç¢ºèªãã€ã¢ãã°ããããã¢ãã衚瀺ãããŸãã
äž»ãªæ©èœã®1ã€ãã€ãŸãåèªã®è¿œå /åé€/å€æŽã«ã€ããŠèª¬æããã®ã§ãæãéèŠãªãã®ãæ€èšãããããã®åèªã«åŸã£ãŠãã¹ãã«åæ ŒããåŸãåèªãè¿œå ããå¥ã®æ¹æ³ã説æããŸãã
äžèšã®å³ã§ã¯ãã¢ã«ãã¡ãããé ãéé ãã©ã³ãã ã®3ã€ã®ç°ãªãé åºã§ãã¹ãã«åæ Œã§ããããšãããããŸãã ãã¹ããªããžã§ã¯ãã¯ãè±èªçããã·ã¢èªããŸãã¯è»¢åã®ããããã§ãã
å³ãããããããã«ãåèªã®è±èªçã®ãã£ãŒã«ããã¢ã¯ãã£ãã«ãªã£ãŠããŸããã€ãŸãããã®ãªãã·ã§ã³ããã¹ããããŠããŸãã éžæãããã¹ãã«å¿ããŠãåžžã«1ã€ã®å
¥åãã£ãŒã«ãã®ã¿ãã¢ã¯ãã£ãã«ãªããæ®ãã¯å€æŽãããŸããã ãã¹ããŒã¿ã¹ãè¡ã¯ãå
¥åãããŠãŒã¶ãŒããŒãžã§ã³ãæ£ãããã©ããã瀺ããŸãã確èªããã«ã¯ãã確èªããã¿ã³ãã¯ãªãã¯ããå¿
èŠããããŸãããŸããå®äºããåèªã®æ°ãšãã®æ°ã瀺ããŸããã次ãžããã¿ã³ã¯è©³çŽ°ã«æ€èšã§ããŸããããåã®åèªã«æ»ããã¿ã³ãè¿œå ã§ããããšã«æ³šæããŠãã ããã ãã¹ãã¯ãæåŸã®åèªãŸãã¯ã¡ãã¥ãŒé
ç®ã«å°éããããšã§å®äºã§ããŸãã
ãã¹ãã«åæ ŒãŸãã¯å®äºããããçµæã泚æãä¿ãããŸãã
æ£ããå
¥åãããåèªã¯ç·è²ã§è¡šç€ºãããæ®ãã¯èµ€è²ã§è¡šç€ºãããŸãããã®åŸãã¡ã€ã³ã¡ãã¥ãŒã«ç§»åããããå床ãã¹ããåããããšãã§ããŸãã
次ã«ãåèªãè¿œå ããå¥ã®æ¹æ³ãæ€èšããŸããããã䜿çšããã«ã¯ã[ããŠã³ããŒã]ã¡ãã¥ãŒé
ç®ã«ç§»åããå¿
èŠããããŸããããã§ãäžèšã®ããã«ãµãŒããŒã«è¿œå ãããåèªã衚瀺ã§ããŸãã
å³ã¯ããã®ã¢ã¯ãã£ããã£ã¯ããã¿ã³ã®ä»£ããã«ãã§ãã¯ããã¯ã¹ãååšããããšãé€ããŠãå®éã«å€æŽããã³åé€ã®ã¢ã¯ãã£ãåãšåãã§ããããšã瀺ããŠããŸãã
ãµãŒããŒããæåŸã®åèªãè¿ããããŸã§ããŠãŒã¶ãŒãæåŸãã2çªç®ã®åèªã«å°éããåŸãããã«100åãããŒãããããªã©ããµãŒããŒããã®åèªã¯å°ããªéšåãã€ãŸã100åã«ãªããŸãã ã«ãŒããã¡ã€ã«ã«åèªãè¿œå ããã«ã¯ãã¡ãã¥ãŒãªãã·ã§ã³ã䜿çšããŸãã
ç»åã§ãããããã«ãéžæããåèªããŸãã¯çŸåšããŒããããŠããåèªãããŠã³ããŒãã§ããŸãã ä¿åãããåèªã®æ°ã¯ãã¡ãã¥ãŒé
ç®ã®å·ŠåŽã«è¡šç€ºãããŸãã
äžã®ç»åã§ã¯ãåèªã®å€æŽ/åé€/èªã¿èŸŒã¿ã®ã¢ã¯ãã£ãåã«ç·šé-ãæ€çŽ¢ããããããšãããããŸãã ã©ãã§ãåãããã«å®è£
ãããŠããã®ã§ãããŠã³ããŒããŠã£ã³ããŠã®äŸã®ã¿ãæ€èšããŸãã
å®è£
ãç°¡åã§ããã«ããããããããã®ããã°ã©ã ã§ã®åèªã®æ€çŽ¢ã¯ç§ã®ãæ°ã«å
¥ãã®éçºã§ãïŒãµãŒããŒããã®åèªã®èªã¿èŸŒã¿ãã«ãŠã³ãããªãã§ãã ããïŒã è±èªãšãã·ã¢èªã®åèªãæ€çŽ¢ãããã©ã€ããã§ãããã·ã³ãã«ã§äœ¿ããããã§ãã
ãã®ããã°ã©ã ã«ã¯ããView wordsããšããã¡ãã¥ãŒé
ç®ãããããã¹ãŠã®åèªãHTMLããŒãã«ã«è¡šç€ºãããŸãã
æåŸã«ããã¹ãŠã®ã¢ã¯ãã£ããã£ã®ãã¹ãŠã®æ©èœãã¡ãã¥ãŒã«è€è£œãããŠããŸãã
å®è£
æšæž¬ããããšã¯é£ãããªãã£ãã®ã§ãããã°ã©ã ã¯2ã€ã®éšåã§æ§æãããŸããããã¯ãµãŒããŒã¢ããªã±ãŒã·ã§ã³ãšã¯ã©ã€ã¢ã³ãã¢ããªã±ãŒã·ã§ã³ã§ãããããã£ãŠããã®é
ç®ã¯2ã€ã®éšåã«åå²ãããããããã®å®è£
ã«ã€ããŠåå¥ã«èª¬æããŸãã ç¹ã«ããã°ã©ã ã®å€§éšåã¯é£ãããªãã®ã§ãç§ã¯æãå¿
èŠã ãšæããã®ã ããèæ
®ããŸããããããªããšãèšäºã¯éåžžã«æ±ãã«ãããªããŸãã
ã¯ã©ã€ã¢ã³ãéš
ã¯ã©ã€ã¢ã³ãéšåãé çªã«èª¬æãå§ããã®ã§ãæåã«èæ
®ãã¹ãããšã¯ãã¡ãã¥ãŒã®äœæãããæ£ç¢ºã«ã¯ãæãããã¿/å±éãµãã¡ãã¥ãŒã®å®è£
ã§ãã ãã®ãã©ã°ã¡ã³ãã¯éåžžã«åçŽã§ããã説æã¯ã»ãšãã©å¿
èŠãªããããã³ãŒãã®ããžãã¯ã®ã¿ã説æããŸãã
<Button android:id="@+id/alphabet" android:layout_width="@dimen/b_size" android:layout_height="wrap_content" android:layout_gravity="center" android:text="@string/b_alphabet" android:visibility="gone" android:onClick="Alphabet"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <Button android:id="@+id/english1" android:layout_width="@dimen/b_size2" android:layout_height="wrap_content" android:layout_gravity="center" android:text="@string/b_english" android:visibility="gone" android:onClick="TestingWords"/> <Button android:id="@+id/transcription1" android:layout_width="@dimen/b_size2" android:layout_height="wrap_content" android:layout_gravity="center" android:text="@string/b_transcription" android:visibility="gone" android:onClick="TestingWords"/> <Button android:id="@+id/russian1" android:layout_width="@dimen/b_size2" android:layout_height="wrap_content" android:layout_gravity="center" android:text="@string/b_russian" android:visibility="gone" android:onClick="TestingWords"/> </LinearLayout>
xml-fileã³ãŒãã¹ãããããããããããã«ãæåã¯ãã¹ãŠã®ãµãã¡ãã¥ãŒã¢ã€ãã ãé衚瀺ã«ãªã£ãŠããŸããã察å¿ãããã¿ã³ãã¯ãªãã¯ãããšããããã衚瀺ãããã¢ã¯ãã£ãã ã£ãä»ã®ã¢ã€ãã ãæå°åãããŸããæ©èœã®1ã€ã以äžã«ç€ºããŸãããæ®ãã¯äºå®äžåãã§ãã
public void Alphabet(View view) { click_alphabet = !click_alphabet; if(Btn_Null()) Btn_Gone(); btn_english = (Button) findViewById(R.id.english1); btn_transcription = (Button) findViewById(R.id.transcription1); btn_russian = (Button) findViewById(R.id.russian1); if(click_alphabet) { btn_english.setVisibility(View.VISIBLE); btn_transcription.setVisibility(View.VISIBLE); btn_russian.setVisibility(View.VISIBLE); btn_alphabet.setText(" -"); } else { Btn_Gone(); btn_alphabet.setText(" +"); } }
Click_alphabetå€æ°-ãã¿ã³ãå床æŒããããã©ããã確èªããã¯ãã®å Žåããã®é
ç®ãæ
åœãããµãã¡ãã¥ãŒãæå°åãããŸãã
é¢æ°Btn_NullïŒïŒ-ãã¹ãŠã®ãã¿ã³ã®åæåããã§ãã¯ããŸãã
é¢æ°Btn_GoneïŒïŒ-ãã¹ãŠã®ã¡ãã¥ãŒé
ç®/ãµãé
ç®ãå®å
šã«æãããã¿ãŸãã
次ã«ããµãŒããŒãšã¹ããŒããã©ã³ã®ããŒã¿ããŒã¹ã«åèªãè¿œå ããããšãæ€èšããŸãã ãŠãŒã¶ãŒãèªåã«è¿œå ãããã¹ãŠã®åèªã¯TreeMap <StringãTransRus>ã¯ã©ã¹ã«æ ŒçŽããããã®ã¯ã©ã¹ã®ããŒã¯è±èªã®åèªã§ããããã©ã³ã¹ã¯ãªãã·ã§ã³ãšç¿»èš³ã¯TransRusã¯ã©ã¹ã«æ ŒçŽãããŸãã
public class TransRus { private String transcription; private String russian; boolean error; TransRus() { transcription = new String(""); russian = new String(""); error = false; } void getTranscription(String tr) { transcription = tr; } void getRussian(String rs) { russian = rs; } String setTranscription() { return transcription; } String setRussian() { return russian; } void getError(boolean t) { error = t; } boolean setError() { return error; } }
TreeMapã¯ã©ã¹ã¯ãCollectionWordsã¯ã©ã¹ã®ã©ãããŒã§ã©ãããããŸãããŸãã倧æåãšå°æåãç¡èŠããã³ã³ãã¬ãŒã¿ãŒãäœæãããŠããŸãã
class ComparatorNotRegister implements Comparator<String> { public int compare(String str1, String str2) { return str1.compareToIgnoreCase(str2); } } public class CollectionWords { static TreeMap<String, TransRus> coll_words = null; static final String file1 = "english"; static final String file2 = "transcription"; static final String file3 = "russian"; static void InitializationCollWords() { if(coll_words != null) return; coll_words = new TreeMap<String, TransRus>(new ComparatorNotRegister()); } static void PutCollWords(String english, String transcription, String russian) { TransRus tr = new TransRus(); tr.getTranscription(transcription); tr.getRussian(russian); coll_words.put(english, tr); } static void ChangedWordEng(String old_english, String new_english, String transcription, String russian) { TransRus temp = coll_words.get(old_english); coll_words.remove(old_english); PutCollWords(new_english, transcription, russian); } static void DeleteWords(String eng) { coll_words.remove(eng); } static void WriteWords(AppCompatActivity t) { try( BufferedWriter eng = new BufferedWriter(new OutputStreamWriter(t.openFileOutput(file1, t.MODE_PRIVATE))); BufferedWriter trans = new BufferedWriter(new OutputStreamWriter(t.openFileOutput(file2, t.MODE_PRIVATE))); BufferedWriter rus = new BufferedWriter(new OutputStreamWriter(t.openFileOutput(file3, t.MODE_PRIVATE)))) { for(Map.Entry<String, TransRus> me : CollectionWords.AllWords()) { eng.write(me.getKey() + "\n"); trans.write(me.getValue().setTranscription() + "\n"); rus.write(me.getValue().setRussian() + "\n"); } } catch (FileNotFoundException e) { Log.d("MyLog", "WF: " + e); } catch (IOException e) { Log.d("MyLog", "WIOE: " + e); } catch(NullPointerException e) { Log.d("MyLog", "WN: " + e); } catch (Exception e) { Log.d("MyLog", "WE: " + e); } } static void ReadWords(AppCompatActivity t) { try( BufferedReader eng = new BufferedReader(new InputStreamReader(t.openFileInput(file1))); BufferedReader trans = new BufferedReader(new InputStreamReader(t.openFileInput(file2))); BufferedReader rus = new BufferedReader(new InputStreamReader(t.openFileInput(file3)))) { String str_eng; String str_trans; String str_rus; while(((str_eng = eng.readLine()) != null) && ((str_trans = trans.readLine()) != null) && ((str_rus = rus.readLine()) != null)) { CollectionWords.PutCollWords(str_eng, str_trans, str_rus); } Log.d("MyLog", "Hyi tam"); } catch (FileNotFoundException e) { Log.d("MyLog", "RF: " + e); } catch (IOException e) { Log.d("MyLog", "RIO: " + e); } catch(NullPointerException e) { Log.d("MyLog", "RN: " + e); } } static Set<Map.Entry<String, TransRus>> AllWords() { return coll_words.entrySet(); } }
ã芧ã®ãšããããã®ã¯ã©ã¹ã¯é£ãããããŸããããã¹ãŠã®åèªã¯è±èªã転åããã·ã¢èªã®ããã¹ããã¡ã€ã«ã«æ ŒçŽãããŠããŸãããã®ãããããŒã¿ããŒã¹ã䜿çšããå¿
èŠããããŸãããããŸãæ°ã«ããŸããã§ããã ãã¹ãŠããã®ããã«æ©èœããŸãã WriteWordsãReadWordsé¢æ°ã¯ãåèªãä¿åããããã«äœ¿çšãããŸããé¢æ°ãæ©èœããããã«ã¯ããããåŒã³åºããã¯ã©ã¹ããthisãã€ã³ã¿ãŒãæž¡ãå¿
èŠãããããšã«æ³šæããŠãã ããã ãã¹ãŠã®é¢æ°ãéçã§ãããšããäºå®ã¯ããã«æããã«ãªããŸããããã¯ãã¯ã©ã¹ãäœåºŠãè€è£œããªãããã«ç¹å¥ã«è¡ããããã®ã§ãããä»ã®ãã¹ãŠã¯æ確ã§ãããã³ã¡ã³ãã¯äžèŠã§ãã è¿œå ã®ã·ã§ã«ã«ã€ããŠèª¬æããã®ã§ãaddé¢æ°ã説æã§ããŸãã
public void AddWord(View view) { CollectionWords.InitializationCollWords(); if(english_language.getText().length() == 0 || russian_language.getText().length() == 0) { Toast toast = Toast.makeText(getApplicationContext(), " !", Toast.LENGTH_SHORT); toast.show(); return; } if(status != 0 && status == MainActivity.INT_CHG) { CollectionWords.ChangedWordEng(old_english, english_language.getText().toString(), transcription_language.getText().toString().length() == 0 ? "-" : transcription_language.getText().toString(), russian_language.getText().toString()); Back(null); } CollectionWords.PutCollWords(english_language.getText().toString(), (transcription_language.getText().toString().length() == 0 ? "-" : transcription_language.getText().toString()), russian_language.getText().toString()); ClientAddWords caw = new ClientAddWords(); caw.ServerAddWords("1(!!)" + english_language.getText().toString() + "(!!)" + (transcription_language.getText().toString().length() == 0 ? "-" : transcription_language.getText().toString()) + "(!!)" + russian_language.getText().toString()); english_language.setText(""); transcription_language.setText(""); russian_language.setText(""); }
ã³ãŒãã¹ãããããããããã®å¿
é ãã£ãŒã«ãã¯enlish_languageãšrussian_languageã§ããããšãããããŸããããããå
¥åãããŠããªãå Žåãåèªã¯è¿œå ããããé¢æ°ã¯çµäºããã¡ãã»ãŒãžããããã¢ãã衚瀺ãããŸãã åã«èšã£ãããã«ãåèªãè¿œå ããã³å€æŽããããã«ã1ã€ã®xml-fileã䜿çšãããŸãããããã£ãŠãã¯ã©ã¹ã«ã2çªç®ã®ifã¹ããŒãã¡ã³ããããããã®é¢æ°ãžã®å
¥åãè¡ããããã©ããã®å€ãæ ŒçŽããã¹ããŒã¿ã¹å€æ°ããã§ãã¯ããŸããèšèã®å€åã
ç¹ã«èå³æ·±ãã®ã¯ããµãŒããŒã«åèªãéä¿¡ããããã«äœ¿çšãããClientAddWordsã¯ã©ã¹ã§ãã ãªããªã çŸåšãAndroid Studioã§ã¯ããããã¯ãŒã¯ã«é¢é£ãããã¹ãŠãå¥ã®ã¹ã¬ããã§çºçããå¿
èŠãããããããããæ
åœããã¯ã©ã¹ãäœæããããšã«ããŸããã ããã°ã©ã ã«ã¯ããµãŒããŒããåèªãè¿ããã1ã€ããããŸãã
ã³ãŒããããããããã«ãClientAddWordsãªããžã§ã¯ããæåã«äœæããã次ã«ãªããžã§ã¯ããé¢æ°ãåŒã³åºããã·ã³ãã«ãïŒ!!ïŒãã§åºåãããæååãæž¡ãããŸãããã®ã·ã³ãã«ã¯ããµãŒããŒåãã®ãªãã¬ãŒã·ã§ã³ã³ãŒãïŒãã®å Žåã¯ã1ãïŒãšè±èªã®åèªãåé¢ããŸãããã©ã³ã¹ã¯ãªãã·ã§ã³ããã³ç¿»èš³ãããã¯ããµãŒããŒãããŒã¿ãçžäºã«æ£ããåé¢ã§ããããã«ããããã§ãããã®è¡ã¯ãµãŒããŒã«æž¡ããããšæšæž¬ããããããããŸããã
ãããã¯ãŒã¯ãæäœããããã®ã¯ã©ã¹ãäœæãããšãServerAddWordsé¢æ°ãåŒã³åºããããšãã«ã¯ã©ã€ã¢ã³ãããµãŒããŒã«æ¥ç¶ãã転éåŸã«ã¯ã©ã€ã¢ã³ãããµãŒããŒã¢ããªã±ãŒã·ã§ã³ããåæãããããããµãŒããŒã«è¿œå ã®è² è·ãããããªããããéåžžã«äŸ¿å©ã§ãã 以äžã¯ãClientAddWordsã¯ã©ã¹ã§ãã
public class ClientAddWords extends Thread { String str_user; void ServerAddWords(String str) { str_user = str; start(); } public void run() { Log.d("MyLog", "Run Client"); InetAddress addr = null; try { addr = InetAddress.getByName("192.168.1.208"); } catch (UnknownHostException e) { Log.d("MyLog", "ServerAddWords ClientAddWords: " + e); } Client c; try { c = new Client(addr); } catch (IOException e) { Log.d("MyLog", "Socket failed: " + e); return; } c.Out(str_user); c.Close(); } }
ã芧ã®ãšããããã®ã³ãŒãã®å®è£
ã§ã¯ãè€éãªããšã¯ãªããè¿œå ã®èª¬æã¯äžèŠã§ããClientã¯ã©ã¹ã®ã³ãŒãã以äžã«ç€ºããŸãã
public class Client extends Thread { private Socket socket; private BufferedReader in; private PrintWriter out; InetAddress addr; public String In() throws IOException { return in.readLine(); } public void Out(String str) { out.println(str); } public Client(InetAddress addr) throws IOException { this.addr = addr; Log.d("MyLog", "Making client"); try { socket = new Socket(addr, 8080); } catch (IOException e) { Log.d("MyLog", "Socket failed: " + e); throw e; } try { in = new BufferedReader(new InputStreamReader(socket.getInputStream())); out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true); } catch (Exception e) { Log.d("MyLog", "In/Out: " + e); try { socket.close(); } catch (IOException e2) { Log.d("MyLog", "Client: Socket not closed"); } } } public void Close() { try { socket.close(); in.close(); out.close(); } catch (IOException e) { Log.d("MyLog", "Close Client: " + e); } } }
èå³æ·±ãç¹ããããŸããããã®ã³ãŒãäŸã¯ããããã¯ãŒã¯ããã°ã©ãã³ã°å°çšã®Webãµã€ãã§èŠã€ããããšãã§ããŸãã
ä»åºŠã¯ãåèªã®å€æŽãšåé€ãè¡ãã¯ã©ã¹ãèŠãŠãããŸããäœåºŠãèšã£ãããã«ããããã¯1ã€ã®xmlãã¡ã€ã«ã䜿çšãããã®å®è£
ã§æãèå³æ·±ãã®ã¯ãã¿ã³ã§ã¬ã€ã¢ãŠããåããããšã§ãã
<ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/background_find" > <LinearLayout android:id="@+id/ll_find" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> </LinearLayout> </ScrollView>
xmlãã¡ã€ã«èªäœã§ã¯ããã®ã³ãŒãéšåã®ã¿ã察象ã§ããã¬ã€ã¢ãŠããid-ll_findã«èšå®ãããŠããããšãããããŸããããã¯ããã°ã©ã ã§ãã¿ã³ãäœæããããã«å¿
èŠã§ãã
class MyButton extends Button { private String str_eng; private String str_trans; private String str_rus; private int index; public MyButton(Context context) { super(context); } void setEnglish(String eng) { str_eng = eng; } void setTranscription(String trans) { str_trans = trans; } void setRussian(String rus) { str_rus = rus; } void setIndex(int id) { index = id; } String getEnglish() { return str_eng; } String getTranscription() { return str_trans; } String getRussian() { return str_rus; } int getIndex() { return index; } }
æšæž¬ããã®ã¯é£ãããªãã®ã§ããã®ã¯ã©ã¹ã¯ããã«æ³šæããŸããããã¯ãã«ãŒãã®å€ãã€ãŸãè±èªã®åèªããã®è»¢åãšç¿»èš³ãä¿åããããšã®ã¿ãç®çãšããŠããŸã
æåã«èª¬æããé¢æ°ã¯CreateButtonã§ããã³ãŒãã以äžã«ç€ºããŸãã
public MyButton CreateButton(int i, String eng, String trans, String rus) { final MyButton btnNew = new MyButton(this); btnNew.setBackgroundResource(R.drawable.background_button); btnNew.setText(eng + " - " + rus); btnNew.setEnglish(eng); btnNew.setTranscription(trans); btnNew.setRussian(rus); btnNew.setIndex(i); if(status == MainActivity.INT_DEL) { btnNew.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon_delete_button, 0, 0, 0); btnNew.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AlertDialog.Builder ad; Find context; context = Find.this; String title = " "; String message = " ?"; String button1String = ""; String button2String = ""; ad = new AlertDialog.Builder((Context) context); ad.setTitle(title); ad.setMessage(message); ad.setPositiveButton(button1String, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int arg1) { CollectionWords.DeleteWords(btnNew.getEnglish()); ll_layout.removeView(btnNew); } }); ad.setNegativeButton(button2String, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int arg1) { } }); ad.show(); } }); } else { btnNew.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon_changed_button, 0, 0, 0); btnNew.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d("MyLog", "Changed Words"); ChangedWord((MyButton) v); ll_layout.removeView((MyButton) v); } }); } return btnNew; }
ããã€ãã®èå³æ·±ãç¹ããããŸããã€ãŸãããã¿ã³ã®èæ¯ãå€æŽããŸãã次ã«ãã¯ã©ã¹ã蚪åããç®çã«å¿ããŠããã¿ã³ã®ã¢ã€ã³ã³ãäœæããŸããåèªãšbtnNewãåé€ãããããChangedWordé¢æ°ãåŒã³åºãããåèªãå€æŽããã¢ã¯ãã£ããã£ãéããŸãã
次ã«èª¬æããæ©èœã¯ShowViewWordsã§ããã®ç®çã¯ãã¿ã³ãã¬ã€ã¢ãŠãã«é
眮ããããšã§ãã
public void ShowViewWords(LinearLayout.LayoutParams lParams, String sub_str) { int i = 0; String first_chr = new String(""); for(Map.Entry<String, TransRus> me : CollectionWords.AllWords()) { if(sub_str.length() != 0 && (me.getKey().toLowerCase().indexOf(sub_str.toLowerCase()) == -1 && me.getValue().setRussian().toLowerCase().indexOf(sub_str.toLowerCase()) == -1)) continue; if(!first_chr.equals(String.valueOf(me.getKey().toUpperCase().charAt(0)))) { first_chr = String.valueOf(me.getKey().toUpperCase().charAt(0)); TextView temp = new TextView(this); temp.setText(first_chr + ":"); temp.setTextSize(25f); ll_layout.addView(temp, i, lParams); i++; } ll_layout.addView(CreateButton(i, me.getKey(), me.getValue().setTranscription(), me.getValue().setRussian()), i, lParams); i++; } if(i == 0) { LinearLayout.LayoutParams l = CreateParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, Gravity.CENTER_VERTICAL); TextView not_found = new TextView(this); not_found.setText(" "); ll_layout.addView(not_found, l); } }
ãŸãã次ã®åèªã®æåã®æåãšã¯ç°ãªããåèªã®æåã®æåã®å€ãæ ŒçŽããTextViewãäœæããŠè¿œå ããŸãã ã§ããéã説æããããšããŸãããã念ã®ãããäŸãšããŠäŸã瀺ããŸãã
ãã®ã³ãŒãéšåããããæ
åœããŸãã
if(!first_chr.equals(String.valueOf(me.getKey().toUpperCase().charAt(0)))) { first_chr = String.valueOf(me.getKey().toUpperCase().charAt(0)); TextView temp = new TextView(this); temp.setText(first_chr + ":"); temp.setTextSize(25f); ll_layout.addView(temp, i, lParams); i++; }
æåã«ãå€æ°first_chrã«ã¯ç©ºã®æååãå²ãåœãŠãããŸãããã®ããããµã€ã¯ã«ãåããŠééãããšãå€ãå
¥åãããŸãã
ãã®è¡ã¯ã«ãŒãç¶æ
ã®åå ã§ãã
for(Map.Entry<String, TransRus> me : CollectionWords.AllWords())
ããã¯æ€çŽ¢ã«é¢é£ãããããæåã®ifã¹ããŒãã¡ã³ãã®ç®çã«ã€ããŠã¯åŸã§èª¬æããæ€çŽ¢ã«ã€ããŠã¯æåŸã«èª¬æããŸãã
ll_layout.addView(CreateButton(i, me.getKey(), me.getValue().setTranscription(), me.getValue().setRussian()), i, lParams);
ãããŠããã®æ§é ã¯ll_layoutãžã®è¿œå ãæ
åœããããã§CreateButtoné¢æ°ãåŒã³åºãããŸããããã¯äžèšãšèŠãªãããMyButtonå€ãè¿ãããã®ãã¿ã³ã®ã€ã³ããã¯ã¹ãšãã©ã¡ãŒã¿ãŒãè¿œå ãããŸãã
ShowViewWordsé¢æ°ã¯CreatesButtoné¢æ°ããåŒã³åºãããCreatesButtoné¢æ°ã¯onCreateããåŒã³åºãããŸãã CreatesButtonã³ãŒãã¯æ¬¡ã®ãšããã§ãã
public void CreatesButton(String str_find) { ll_layout.removeAllViews(); LinearLayout.LayoutParams lParams = CreateParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, Gravity.LEFT); lParams.topMargin = 1; ShowViewWords(lParams, str_find); }
CreateParamsé¢æ°ã³ãŒãïŒ
public LinearLayout.LayoutParams CreateParams(int width, int height, int gravity) { LinearLayout.LayoutParams lParams = new LinearLayout.LayoutParams(width, height); lParams.gravity = gravity; return lParams; }
ããã°ã©ã èšè¿°ã®ãã®æ®µéã§ãåèªã®ãã¹ããæ
åœããTestWordsã¯ã©ã¹ã®å®è£
ã«åãââçµã¿ãŸããã ãã€ãã®ããã«ãè€éãªããšã¯äœããããŸããããèæ
®ãã¹ãç¹ãããã€ããããŸãã æåã®1ã€ã¯ããŠãŒã¶ãŒããã¹ããéžæããããšã§ããæšæž¬ãã©ãã»ã©å°é£ã§ãã£ãŠãã9ã€ã®ãã¹ããªãã·ã§ã³ãã€ãŸãæå®ãããèªé ïŒã¢ã«ãã¡ãããé ãéé ãã©ã³ãã ïŒããã³ãã¹ããªããžã§ã¯ãïŒè±èªã転åããã·ã¢èªïŒããããŸãã ãã®ãããStatusTesté¢æ°ãæåã«åŒã³åºããŸãã ã©ã®ç·šéããããã¯ããããã³ãŒãã«ãã£ãŠæ±ºå®ããåèªãååšããã€ã³ããã¯ã¹ã§å€æ°ãåæåããŸãã
public void StatusTest() { switch (status) { case MainActivity.INT_ALPH_ENG: edit_transcription.setRawInputType(0x00000000); edit_russian.setRawInputType(0x00000000); next_words = 0; break; case MainActivity.INT_ALPH_TRANS: edit_english.setRawInputType(0x00000000); edit_russian.setRawInputType(0x00000000); next_words = 0; break; case MainActivity.INT_ALPH_RUS: edit_english.setRawInputType(0x00000000); edit_transcription.setRawInputType(0x00000000); next_words = 0; break; case MainActivity.INT_REVS_ENG: edit_transcription.setRawInputType(0x00000000); edit_russian.setRawInputType(0x00000000); next_words = CollectionWords.coll_words.size() - 1; break; case MainActivity.INT_REVS_TRANS: edit_english.setRawInputType(0x00000000); edit_russian.setRawInputType(0x00000000); next_words = CollectionWords.coll_words.size() - 1; break; case MainActivity.INT_REVS_RUS: edit_english.setRawInputType(0x00000000); edit_transcription.setRawInputType(0x00000000); next_words = CollectionWords.coll_words.size() - 1; break; case MainActivity.INT_RAND_ENG: rand_next_words = new Random(); next_words = MethodRandomWords(); edit_transcription.setRawInputType(0x00000000); edit_russian.setRawInputType(0x00000000); break; case MainActivity.INT_RAND_TRANS: rand_next_words = new Random(); next_words = MethodRandomWords(); edit_english.setRawInputType(0x00000000); edit_russian.setRawInputType(0x00000000); break; case MainActivity.INT_RAND_RUS: rand_next_words = new Random(); next_words = MethodRandomWords(); edit_english.setRawInputType(0x00000000); edit_transcription.setRawInputType(0x00000000); break; } }
ã¢ã«ãã¡ãããé ã®å Žåãnext_wordså€æ°ã«ã¯0ãå²ãåœãŠãããŸããéé ã¯ãTreeMapã¯ã©ã¹ã®ãµã€ãºãã1ãåŒãããã®ãšãnext_wordsã§ã©ã³ãã ãªå€ãè¿ãç¹å¥ãªé¢æ°ã§ããã©ã³ãã ãªé åºã§ãã
MethodRandomWordsé¢æ°ã¯ãåãã©ã³ãã å€ãæ°åè¿ããªãããã«ããŸãã
ãã¹ãŠã®ç·šéãåæåããStatusTesté¢æ°ãåŒã³åºããåŸãReadWordã¡ãœãããå®è¡ãããŸãã
public void ReadWord() { last_words++; amount_words.setText(last_words + "/" + CollectionWords.coll_words.size()); switch (status) { case MainActivity.INT_ALPH_ENG: nw = VecNextWord(next_words); edit_english.setText(""); edit_transcription.setText(nw.getValue().setTranscription()); edit_russian.setText(nw.getValue().setRussian()); break; case MainActivity.INT_ALPH_TRANS: nw = VecNextWord(next_words); edit_transcription.setText(""); edit_english.setText(nw.getKey()); edit_russian.setText(nw.getValue().setRussian()); break; case MainActivity.INT_ALPH_RUS: nw = VecNextWord(next_words); edit_russian.setText(""); edit_english.setText(nw.getKey()); edit_transcription.setText(nw.getValue().setTranscription()); break; case MainActivity.INT_REVS_ENG: nw = VecNextWord(next_words); edit_english.setText(""); edit_transcription.setText(nw.getValue().setTranscription()); edit_russian.setText(nw.getValue().setRussian()); break; case MainActivity.INT_REVS_TRANS: nw = VecNextWord(next_words); edit_transcription.setText(""); edit_english.setText(nw.getKey()); edit_russian.setText(nw.getValue().setRussian()); break; case MainActivity.INT_REVS_RUS: nw = VecNextWord(next_words); edit_russian.setText(""); edit_english.setText(nw.getKey()); edit_transcription.setText(nw.getValue().setTranscription()); break; case MainActivity.INT_RAND_ENG: nw = VecNextWord(next_words); edit_english.setText(""); edit_transcription.setText(nw.getValue().setTranscription()); edit_russian.setText(nw.getValue().setRussian()); break; case MainActivity.INT_RAND_TRANS: nw = VecNextWord(next_words); edit_transcription.setText(""); edit_english.setText(nw.getKey()); edit_russian.setText(nw.getValue().setRussian()); break; case MainActivity.INT_RAND_RUS: nw = VecNextWord(next_words); edit_russian.setText(""); edit_english.setText(nw.getKey()); edit_transcription.setText(nw.getValue().setTranscription()); break; } status_true_word.setText(":-"); }
ãã®ã¡ãœããã®ç®çã¯ãæåã®ã¯ãŒããããŒãããããšã§ããVecNextWordé¢æ°ããããæ
åœããŸãããã®ãã©ã¡ãŒã¿ãŒã¯ã€ã³ããã¯ã¹ã§ãããæ»ãå€ã¯Map.Entry <StringãTransRus>ã§ãããŸããã¯ãŒãæ°ã瀺ããã¹ããŒã¿ã¹ããªã»ããããŸãã
次ã®åœ¹å²ã¯2ã€ã®æ©èœã®ã¿ãæãããŸãããã§ãã¯-å
¥åãããåèªã®æ£ç¢ºæ§ããã§ãã¯ããå¿
èŠã«å¿ããŠã¹ããŒã¿ã¹ãNextWordãå€æŽããŸã-éžæããé åºã«å¿ããŠããªã¹ãå
ã®æ¬¡ã®åèªãè¿ããŸãã æ©èœã³ãŒãã以äžã«ç€ºããŸãã
public void Check(View view) { check_bool = true; Log.d("MyLog", "Status: " + status); switch (status) { case MainActivity.INT_ALPH_ENG: Log.d("MyLog", "Check()"); if(edit_english.getText().toString().equals(nw.getKey())) { Log.d("MyLog", "True"); status_true_word.setText(": "); Log.d("MyLog", "next_words: " + next_words); nw.getValue().getError(true); } else { Log.d("MyLog", "False"); status_true_word.setText(": "); } break; case MainActivity.INT_ALPH_TRANS: Log.d("MyLog", "Check()"); if(edit_transcription.getText().toString().equals(nw.getValue().setTranscription())) { status_true_word.setText(": "); Log.d("MyLog", "next_words: " + next_words); nw.getValue().getError(true); } else { status_true_word.setText(": "); } break; case MainActivity.INT_ALPH_RUS: Log.d("MyLog", "Check()"); if(edit_russian.getText().toString().equals(nw.getValue().setRussian())) { status_true_word.setText(": "); Log.d("MyLog", "next_words: " + next_words); nw.getValue().getError(true); } else { status_true_word.setText(": "); } break; case MainActivity.INT_REVS_ENG: Log.d("MyLog", "Check()"); if(edit_english.getText().toString().equals(nw.getKey())) { status_true_word.setText(": "); Log.d("MyLog", "next_words: " + next_words); nw.getValue().getError(true); } else { status_true_word.setText(": "); } break; case MainActivity.INT_REVS_TRANS: Log.d("MyLog", "Check()"); if(edit_transcription.getText().toString().equals(nw.getValue().setTranscription())) { status_true_word.setText(": "); Log.d("MyLog", "next_words: " + next_words); nw.getValue().getError(true); } else { status_true_word.setText(": "); } break; case MainActivity.INT_REVS_RUS: Log.d("MyLog", "Check()"); if(edit_russian.getText().toString().equals(nw.getValue().setRussian())) { status_true_word.setText(": "); Log.d("MyLog", "next_words: " + next_words); nw.getValue().getError(true); } else { status_true_word.setText(": "); } break; case MainActivity.INT_RAND_ENG: Log.d("MyLog", "Check()"); if(edit_english.getText().toString().equals(nw.getKey())) { status_true_word.setText(": "); Log.d("MyLog", "next_words: " + next_words); nw.getValue().getError(true); } else { status_true_word.setText(": "); } break; case MainActivity.INT_RAND_TRANS: Log.d("MyLog", "Check()"); if(edit_transcription.getText().toString().equals(nw.getValue().setTranscription())) { status_true_word.setText(": "); Log.d("MyLog", "next_words: " + next_words); nw.getValue().getError(true); } else { status_true_word.setText(": "); } break; case MainActivity.INT_RAND_RUS: Log.d("MyLog", "Check()"); if(edit_russian.getText().toString().equals(nw.getValue().setRussian())) { status_true_word.setText(": "); Log.d("MyLog", "next_words: " + next_words); nw.getValue().getError(true); } else { status_true_word.setText(": "); } break; } } public void NextWord(View view) throws InterruptedException { if(last_words >= CollectionWords.coll_words.size()) { ResultTestGo(); return; } if(!check_bool && last_words != 0) Check(view); AddWordInTable(nw.getValue().setError()); last_words++; amount_words.setText(last_words + "/" + CollectionWords.coll_words.size()); switch (status) { case MainActivity.INT_ALPH_ENG: next_words++; nw = VecNextWord(next_words); edit_english.setText(""); edit_transcription.setText(nw.getValue().setTranscription()); edit_russian.setText(nw.getValue().setRussian()); break; case MainActivity.INT_ALPH_TRANS: next_words++; nw = VecNextWord(next_words); edit_transcription.setText(""); edit_english.setText(nw.getKey()); edit_russian.setText(nw.getValue().setRussian()); break; case MainActivity.INT_ALPH_RUS: next_words++; nw = VecNextWord(next_words); edit_russian.setText(""); edit_english.setText(nw.getKey()); edit_transcription.setText(nw.getValue().setTranscription()); break; case MainActivity.INT_REVS_ENG: next_words--; nw = VecNextWord(next_words); edit_english.setText(""); edit_transcription.setText(nw.getValue().setTranscription()); edit_russian.setText(nw.getValue().setRussian()); break; case MainActivity.INT_REVS_TRANS: next_words--; nw = VecNextWord(next_words); edit_transcription.setText(""); edit_english.setText(nw.getKey()); edit_russian.setText(nw.getValue().setRussian()); break; case MainActivity.INT_REVS_RUS: next_words--; nw = VecNextWord(next_words); edit_russian.setText(""); edit_english.setText(nw.getKey()); edit_transcription.setText(nw.getValue().setTranscription()); break; case MainActivity.INT_RAND_ENG: next_words = MethodRandomWords(); nw = VecNextWord(next_words); edit_english.setText(""); edit_transcription.setText(nw.getValue().setTranscription()); edit_russian.setText(nw.getValue().setRussian()); break; case MainActivity.INT_RAND_TRANS: next_words = MethodRandomWords(); nw = VecNextWord(next_words); edit_transcription.setText(""); edit_english.setText(nw.getKey()); edit_russian.setText(nw.getValue().setRussian()); break; case MainActivity.INT_RAND_RUS: next_words = MethodRandomWords(); nw = VecNextWord(next_words); edit_russian.setText(""); edit_english.setText(nw.getKey()); edit_transcription.setText(nw.getValue().setTranscription()); break; } status_true_word.setText(":-"); check_bool = false; }
, - , . , , Html-, . , , , AddWordInTable(nw.getValue().setError()), .
public void AddWordInTable(boolean temp) { table_result += "<tr><td " + (temp ? "bgcolor=\"#008000\"" : "bgcolor=\"#FF0000\"") + ">" + nw.getKey() + "</td><td " + (temp ? "bgcolor=\"#008000\"" : "bgcolor=\"#FF0000\"") + ">" + nw.getValue().setTranscription() + "</td><td " + (temp ? "bgcolor=\"#008000\"" : "bgcolor=\"#FF0000\"") + ">" + nw.getValue().setRussian() + "</td><td " + (temp ? "bgcolor=\"#008000\"" : "bgcolor=\"#FF0000\"") + ">" + (temp ? "" : " ") + "</td></tr>\n"; }
onCreat, ResultTest, .
, , , ResultTest, , , , Html- loadDataWithBaseURL(null, TestWords.table_result, «text/html», «UTF-8», null), WebView.
, . Load, 18 , .. RecyclerView, - , , . , , Load, .
, , , . xml- CheckBox' TextView', . TextView , . , , , , .
, RecyclerView, , .. , .
, onCreateViewHolder, onBindViewHolder, getItemCount, ViewHolder. GetItemCount , .. . ViewHolder.
public static class ViewHolder extends RecyclerView.ViewHolder { public CheckBox chkbox; public TextView tv_alph; public ViewHolder(View v) { super(v); chkbox = (CheckBox) v.findViewById(R.id.rv_chkbox); tv_alph = (TextView) v.findViewById(R.id.tv_alph); } }
. onCreateViewHolder, ViewHolder.
public RecyclerLoad.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.content_checkbox, parent, false); ViewHolder vh = new ViewHolder(v); return vh; }
onBindViewHolder.
public void onBindViewHolder(final ViewHolder holder, final int position) { if(index_alph[position]) { holder.tv_alph.setText(Alph[position]); holder.tv_alph.setVisibility(View.VISIBLE); } else holder.tv_alph.setVisibility(View.GONE); holder.chkbox.setText(Eng_Array[position] + " - [" + Trans_Array[position] + "] - " + Rus_Array[position]); if(this_load.menu_load_1 != null) this_load.menu_load_1.setTitle(" (" + Integer.toString(amount) + ")"); holder.chkbox.setOnCheckedChangeListener(null); holder.chkbox.setChecked(checked_box[position]); holder.chkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(isChecked) checked_words_load++; else checked_words_load--; checked_box[position] = isChecked; if(this_load.menu_load_2 != null) this_load.menu_load_2.setTitle(". (" + Integer.toString(checked_words_load) + ")"); } }); if (position >= amount - 1) { Log.d("MyLog", "!!!"); LoadWords(sub_str); onBind = true; } }
, â holder , â CheckBox' setOnCheckedChangeListener setChecked, CheckBox' onCheckedChanged, «» â if , LoadWords.
sub_str, . String, Edit' «: ». ãªããªã , Edit'e, .
find_words.addTextChangedListener(new TextWatcher() { public void afterTextChanged(Editable s) { } public void beforeTextChanged(CharSequence s, int start, int count, int after) { } public void onTextChanged(CharSequence s, int start, int before, int count) { FindWord(null); } }); public void FindWord(View view) { mAdapter.Find(find_words.getText().toString()); mAdapter.notifyDataSetChanged(); }
, FindWord, Find, RecyclerLoad, , , .
public void Find(String sub_str) { this.sub_str = sub_str; amount = 0; Eng_Array = null; Trans_Array = null; Rus_Array = null; checked_box = null; index_alph = null; Alph = null; LoadWords(sub_str); }
LoadWords, RecyclerLoad , .. .
public void LoadWords(String sub_str) { ClientLoadWords clw = new ClientLoadWords(); clw.LoadWords("2(!!)" + (sub_str.length() != 0 ? sub_str : "(--)"), amount); try { clw.join(); } catch (InterruptedException e) { Log.d("MyLog", "ShowViewWords: " + e); } if(clw.int_error == -1) { Toast toast = Toast.makeText(this_load.getApplicationContext(), " !", Toast.LENGTH_SHORT); toast.show(); } amount += clw.amount; Log.d("MyLog", "amount = " + amount); String [] temp_Eng_Array = new String[amount]; String [] temp_Trans_Array = new String[amount]; String [] temp_Rus_Array = new String[amount]; String [] temp_Alph = new String[amount]; boolean [] temp_checked_box = new boolean[amount]; boolean [] temp_index_alph = new boolean[amount]; int temp_amount = Eng_Array != null ? Eng_Array.length : 0; if(Eng_Array != null) for(int i = 0; i < Eng_Array.length; i++) { temp_Eng_Array[i] = Eng_Array[i]; temp_Trans_Array[i] = Trans_Array[i]; temp_Rus_Array[i] = Rus_Array[i]; temp_Alph[i] = Alph[i]; temp_checked_box[i] = checked_box[i]; temp_index_alph[i] = index_alph[i]; } for(int i = 0; i < clw.amount; i++) { temp_Eng_Array[i + temp_amount] = clw.Eng_Array[i]; temp_Trans_Array[i + temp_amount] = clw.Trans_Array[i]; temp_Rus_Array[i + temp_amount] = clw.Rus_Array[i]; temp_checked_box[i + temp_amount] = false; temp_index_alph[i + temp_amount] = false; temp_Alph[i + temp_amount] = ""; if(!first_chr.equals(String.valueOf(clw.Eng_Array[i].toUpperCase().charAt(0)))) { Log.d("MyLog", "First Chr: " + first_chr + ", me.getKey(): " + clw.Eng_Array[i].toUpperCase().charAt(0) + " boolean: " + first_chr.equals(String.valueOf(clw.Eng_Array[i].toUpperCase().charAt(0)))); first_chr = String.valueOf(clw.Eng_Array[i].toUpperCase().charAt(0)); temp_Alph[i + temp_amount] = first_chr + ":"; temp_index_alph[i + temp_amount] = true; } } for(int i = 0; i < temp_Eng_Array.length; i++) { Log.d("MyLog", "temp_Alph: " + temp_Alph[i] + ", temp_index_alph = " + temp_index_alph[i] + ", i = " + i); } Eng_Array = temp_Eng_Array; Trans_Array = temp_Trans_Array; Rus_Array = temp_Rus_Array; checked_box = temp_checked_box; index_alph = temp_index_alph; Alph = temp_Alph; }
LoadWords , . - ClientLoadWords â ClientAddWords, , . . LoadWords, , , . LoadWords .
public void run() { InetAddress addr = null; try { addr = InetAddress.getByName("192.168.1.137"); } catch (UnknownHostException e) { Log.d("MyLog", "ClientLoadWords LoadWords 1: " + e); } Client c; try { c = new Client(addr); } catch (IOException e) { Log.d("MyLog", "Socket failed: " + e); int_error = -1; return; } c.Out(str_user); c.Out(Integer.toString(begin)); amount = 0; try { amount = Integer.parseInt(c.In()); } catch (IOException e) { Log.d("MyLog", "LoadWords ClientLoadWords 3: " + e); } Log.d("MyLog", "Amount: " + amount); Id_Array = new int[amount]; Eng_Array = new String[amount]; Trans_Array = new String[amount]; Rus_Array = new String[amount]; try { for (int i = 0; i < amount; i++) { Id_Array[i] = Integer.parseInt(c.In()); Eng_Array[i] = c.In(); Trans_Array[i] = c.In(); Rus_Array[i] = c.In(); } } catch (IOException e) { Log.d("MyLog", "LoadWords ClientLoadWords 4: " + e); } Sort(); }
, . , , for, , , .
LoadWords. clw.join() ClientLoadWords, . clw -1, . , , , TextView' index_alph, TextView .
, , .. , , , , . ., , « », , , Html-, , .
, , MySQL TCP, , . / ServerOneJabber. Thread. , .. .
public ServerOneJabber(Socket s) throws IOException, SQLException { socket = s; in = new BufferedReader(new InputStreamReader(socket.getInputStream())); out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true); sqldb = new SqlDB(); start(); }
, sqldb, , , . in out In Out, .
public void run() { String message_user = new String(""); try { message_user = Out(); } catch(IOException e) { System.out.println(e); } System.out.println("message_user: " + message_user); try { switch(message_user.charAt(0)) { case '1': AddWord(message_user); break; case '2': TransferWord(message_user); break; } } catch(SQLException e) { System.out.println(e); } catch(IOException e) { System.out.println(e); } }
run . .
public void AddWord(String str) throws SQLException { String[] str_user = Split(str, "(!!)"); for(int i = 0; i < str_user.length; i++) System.out.println("str_user: " + str_user[i]); sqldb.AddWord(str_user[1], str_user[2], str_user[3]); }
AddWord . sqldb AddWord. Split , , split String , .
public void TransferWord(String str) throws SQLException, IOException { String [] user_str = Split(str, "(!!)"); for(int i = 0; i < user_str.length; i++) { System.out.println("user_str: " + user_str[i]); } if(sqldb.CountSQL() == 0) { In("0"); return; } int begin = new Integer(Out()); System.out.println("Loading Words..."); String [] data; if(user_str[1].equals("(--)")) data = sqldb.AllWords(); else data = sqldb.Find(user_str[1]); read_amount_words = (data.length - begin > 100 ? 100 : data.length - begin); In(Integer.toString(read_amount_words)); for(int i = begin; i < begin + ((data.length - begin) > 100 ? 100 : data.length); i++) { System.out.println("i = " + i + ", data.length = " + data.length); if(i == data.length) break; String [] str_data = Split(data[i], "(!!)"); for(int j = 0; j < str_data.length; j++) System.out.println("str_data: " + str_data[j]); In(str_data[0]); In(str_data[1]); In(str_data[2]); In(str_data[3]); } }
TransferWord . , , , , , , . , 100 , 100 , , .
public class Server { static final int PORT = 8080; static public void main(String[] args) throws IOException { ServerSocket s = new ServerSocket(PORT); System.out.println("Server Started"); try { while(true) { Socket socket = s.accept(); try { System.out.println("Client Connection"); new ServerOneJabber(socket); } catch(IOException e) { socket.close(); } } } catch(SQLException e) { System.out.println(e); } finally { s.close(); } } }
Server main, , ServerOneJabber .
ãããã«
. , , , , - . - , , . .