Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Andrew9
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 89
#1

Новую строку, сформированную из текста в поле inputText и сдвига inputShift вывести в editResult - Android

19.06.2014, 03:17. Просмотров 878. Ответов 4
Метки нет (Все метки)

Всем привет, начал делать приложение и столкнулся с проблемой краша. Это первое приложение, прошу помочь разобраться.
Смысл в том что бы новая строка сформированная из текста в поле inputText и сдвига inputShift вывелась в editResult

main.xml
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="encryption.encrypt.enc.MainActivity">
 
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="show result"
        android:id="@+id/showResultButton"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="43dp" />
 
    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/inputText"
        android:layout_alignParentTop="true"
        android:layout_marginTop="58dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:inputType="text" />
 
    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editResult"
        android:layout_below="@+id/inputShift"
        android:layout_marginTop="65dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />
 
    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/inputShift"
        android:layout_marginTop="52dp"
        android:layout_below="@+id/inputText"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:inputType="numberDecimal" />
 
 
</RelativeLayout>
код MainActivity
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import android.app.Activity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
 
 
public abstract class MainActivity extends Activity implements View.OnClickListener {
 
    static String alphabet = "abcdefghijklmnopqrstuvwxyz";
 
    EditText inputText;
    EditText inputShift;
    EditText editResult;
 
    Button showResultButton;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        inputText = (EditText) findViewById(R.id.inputText);
        inputShift = (EditText) findViewById(R.id.inputShift);
        editResult = (EditText) findViewById(R.id.editResult);
        showResultButton = (Button) findViewById(R.id.showResultButton);
 
        showResultButton.setOnClickListener(this);
 
 
    }
 
    public void onClick(View v) {
 
        String str = String.valueOf(inputText);
 
        char[] newstr = new char[str.length()];
        for (int i = 0; i < str.length(); i++) {
            newstr[i] = str.charAt(i);
        }
 
        int k = Integer.parseInt(String.valueOf(inputShift));
        int a = 26;
 
 
        for (int i = 0; i < str.length(); i++) {
            if (newstr[i] != ' ') {
                k = alphabet.indexOf(str.charAt(i));
 
                if (k > (alphabet.length() - a)) {
                    k = k - alphabet.length();
                }
 
                newstr[i] = alphabet.charAt(k + a);
 
            }
            String n = new String(newstr);
            n = String.valueOf(editResult);
 
 
        }
    }
}
лог краша
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
06-18 19:02:29.350      981-981/encryption.encrypt.enc E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: encryption.encrypt.enc, PID: 981
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{encryption.encrypt.enc/encryption.encrypt.enc.MainActivity}: java.lang.InstantiationException: can't instantiate class encryption.encrypt.enc.MainActivity
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2121)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.InstantiationException: can't instantiate class encryption.encrypt.enc.MainActivity
            at java.lang.Class.newInstanceImpl(Native Method)
            at java.lang.Class.newInstance(Class.java:1208)
            at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2112)
************at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
************at android.app.ActivityThread.access$800(ActivityThread.java:135)
************at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
************at android.os.Handler.dispatchMessage(Handler.java:102)
************at android.os.Looper.loop(Looper.java:136)
************at android.app.ActivityThread.main(ActivityThread.java:5017)
************at java.lang.reflect.Method.invokeNative(Native Method)
************at java.lang.reflect.Method.invoke(Method.java:515)
************at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
************at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
************at dalvik.system.NativeStart.main(Native Method)
06-18 19:02:33.110      981-981/encryption.encrypt.enc I/Process﹕ Sending signal. PID: 981 SIG: 9
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2014, 03:17     Новую строку, сформированную из текста в поле inputText и сдвига inputShift вывести в editResult
Посмотрите здесь:

Android Переход на новую activity
Стандартное поисковое поле Android
Android Из ListView на новую Activity
Android Реализация отправки данных из EditText приложения Android в поле таблицы БД под СУБД Oracle 11g и в поле БД под СУБД MSSQL
Static поле у внутреннего класса Android
Android Как добавить новую строку в конец файла?
Клавиатура наезжает на поле ввода Android
Android Как вывести все записи из таблицы в текстовое поле?
Android WebView белое поле снизу
Notification вывод строки с символами перехода на новую строку "\n" Android
Android Выравнивание текста по ширине верхнего текста
Android Фрагмент и статическое поле

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
2014 / 1756 / 546
Регистрация: 12.05.2014
Сообщений: 6,215
Завершенные тесты: 1
19.06.2014, 10:23     Новую строку, сформированную из текста в поле inputText и сдвига inputShift вывести в editResult #2
public abstract class MainActivity extends Activity implements View.OnClickListener

что здесь делает слово abstract ???
Andrew9
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 89
19.06.2014, 11:20  [ТС]     Новую строку, сформированную из текста в поле inputText и сдвига inputShift вывести в editResult #3
Спасибо, по началу студии не нравилась добавка implements и единственным предложением это исправить - была добавка - abstract.

Что по коду не так в 47, 62,63 строках ? Они выделяются серым (нигде не используются) а должны быть завязаны на editText поля.
Паблито
2014 / 1756 / 546
Регистрация: 12.05.2014
Сообщений: 6,215
Завершенные тесты: 1
19.06.2014, 11:56     Новую строку, сформированную из текста в поле inputText и сдвига inputShift вывести в editResult #4
вот в таком виде onClick не выдает ошибки, но я не вникал в работу алгоритма, там. в конце точно бред написан надо переделать
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
    @Override
    public void onClick(View v) {
 
        String str = inputText.getText().toString();
 
        char[] newstr = new char[str.length()];
        for (int i = 0; i < str.length(); i++) {
            newstr[i] = str.charAt(i);
        }
 
        int k = Integer.parseInt(inputShift.getText().toString());
        int a = 26;
        for (int i = 0; i < str.length(); i++) {
            if (newstr[i] != ' ') {
                k = alphabet.indexOf(str.charAt(i));
 
                if (k > (alphabet.length() - a)) {
                    k = k - alphabet.length();
                }
 
                newstr[i] = alphabet.charAt(k + a);
 
            }
            String n = new String(newstr);
            n = String.valueOf(editResult);
 
        }
    }
Andrew9
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 89
19.06.2014, 12:42  [ТС]     Новую строку, сформированную из текста в поле inputText и сдвига inputShift вывести в editResult #5
С начала делалось в еклипсе, там все работает а в студии при привязке к кнопкам возникла проблема.
Алгоритм там "шифр цезаря", сдвиг слова на заданную величину.
Yandex
Объявления
19.06.2014, 12:42     Новую строку, сформированную из текста в поле inputText и сдвига inputShift вывести в editResult
Ответ Создать тему
Опции темы

Текущее время: 05:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru