Страница 1 из 1

Проект про транслитерацию...

Добавлено: 23 янв 2014, 16:17
ropique
Хочу создать проект, которая выполнила бы транслитерацию вводимого текста.. тоесть, ты в виде паролья публикуешь текст, а при нажатии баттона перед ним появлается результат транслитерации... скажем, ты вводишь Привет, прога пишет privet... в java код работает... сейчас хочу добавить в андроид проект, но есть моменты, что я не знаю как делать... ниже покажу те коды что есть...
1.

Код: Выделить всё


import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {

	private TextView plaintext;
private TextView rezult;

	private Button txttranslate;


	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

	rezult = (TextView) findViewById(R.id.rezulttrans);
	plaintext=(EditText)findViewById(R.id.plain_text);
	txttranslate = (Button) findViewById(R.id.translitetext);
		
	}


	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}
2.

Код: Выделить всё

;

import java.util.HashMap;
import java.util.Map;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class Trancsription extends Activity {

	private static final Map<String, String> letters = new HashMap<String, String>();
    static {
        letters.put("А", "A");
        letters.put("Б", "B");
        letters.put("В", "V");
        letters.put("Г", "G");
        letters.put("Д", "D");
        letters.put("Е", "E");
        letters.put("Ё", "E");
        letters.put("Ж", "ZH");
        letters.put("З", "Z");
        letters.put("И", "I");
        letters.put("Й", "I");
        letters.put("К", "K");
        letters.put("Л", "L");
        letters.put("М", "M");
        letters.put("Н", "N");
        letters.put("О", "O");
        letters.put("П", "P");
        letters.put("Р", "R");
        letters.put("С", "S");
        letters.put("Т", "T");
        letters.put("У", "U");
        letters.put("Ф", "F");
        letters.put("Х", "H");
        letters.put("Ц", "C");
        letters.put("Ч", "CH");
        letters.put("Ш", "SH");
        letters.put("Щ", "SH");
        letters.put("Ъ", "'");
        letters.put("Ы", "Y");
        letters.put("Ъ", "'");
        letters.put("Э", "E");
        letters.put("Ю", "U");
        letters.put("Я", "YA");
        letters.put("а", "a");
        letters.put("б", "b");
        letters.put("в", "v");
        letters.put("г", "g");
        letters.put("д", "d");
        letters.put("е", "e");
        letters.put("ё", "e");
        letters.put("ж", "zh");
        letters.put("з", "z");
        letters.put("и", "i");
        letters.put("й", "i");
        letters.put("к", "k");
        letters.put("л", "l");
        letters.put("м", "m");
        letters.put("н", "n");
        letters.put("о", "o");
        letters.put("п", "p");
        letters.put("р", "r");
        letters.put("с", "s");
        letters.put("т", "t");
        letters.put("у", "u");
        letters.put("ф", "f");
        letters.put("х", "h");
        letters.put("ц", "c");
        letters.put("ч", "ch");
        letters.put("ш", "sh");
        letters.put("щ", "sh");
        letters.put("ъ", "'");
        letters.put("ы", "y");
        letters.put("ъ", "'");
        letters.put("э", "e");
        letters.put("ю", "u");
        letters.put("я", "ya");
    }



    public static String toTranslit(String text) {
        StringBuilder sb = new StringBuilder(text.length());
        for (int i = 0; i<text.length(); i++) {
            String l = text.substring(i, i+1);
            if (letters.containsKey(l)) {
                sb.append(letters.get(l));
            }
            else {
                sb.append(l);
            }
        }
        return sb.toString();
    }


    public static void main(String[] args) {
        String test = "Привет, Люди, это какая то безмысленное продложение,которую мы хотим перевести.";
        System.out.println("toTranslit(test) = " + toTranslit(test));
    }

}

и лейаут:

Код: Выделить всё

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/rezulttrans"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/rezult"
        android:layout_below="@+id/rezult_text"
        android:layout_marginTop="130dp"
        android:text="@string/rezult"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <Button
        android:id="@+id/translitetext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/plain_text"
        android:layout_centerHorizontal="true"
        android:layout_margin="10dp"
        android:layout_marginTop="35dp"
        android:onClick="buttonClick"
        android:text="@string/Transponacia" />

    <EditText
        android:id="@+id/plain_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginTop="16dp"
        android:ems="10"
        android:hint="@string/plain_text"
        android:inputType="text" >

        <requestFocus />
    </EditText>

</RelativeLayout>
в Мейнактивити не знаю, как прописать код, что бы она работала как надо((

Re: Проект про транслитерацию...

Добавлено: 23 янв 2014, 16:31
KamiSempai
Судя по всему достаточно будет добавить в MainActivity следующие строки.
[syntax=java] public void buttonClick(View view) {
String resultString = Trancsription.toTranslit(plaintext.getText().toString());
rezult.setText(resultString);
}[/syntax]Надеюсь не нужно объяснять почему метод называется buttonClick?

PS: Меня смущает кое что. Почему Trancsription унаследовано от Activity?

Re: Проект про транслитерацию...

Добавлено: 23 янв 2014, 16:39
klblk
в своем классе тебе не нужно наследование от активити (extends Activity)
функция main тоже не нужна.
просто кидаешь свой класс в android-проект. Дальше при клике на кнопке получаешь текст из EditText, прогоняешь его через свою функцию (Trancsription.toTranslit(myStr)), запихиваешь полученный текст в TextView.

п.с. долго печатал)