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

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

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

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

19.06.2014, 03:17. Просмотров 890. Ответов 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
Android Как добавить новую строку в конец файла?
Android Как понять, что пользователь закончил ввод текста в поле?
Notification вывод строки с символами перехода на новую строку "\n" Android
Android Как вывести все записи из таблицы в текстовое поле?
Android Выравнивание текста по ширине верхнего текста
1С 1C 8.x Проверить на новую строку в табличном поле
Разбить поле и создать новую строку по условию MS Access
Перенос текста на новую строку HTML, CSS
Переход на новую строку текста HTML, CSS
PHP Перенос текста на новую строку
HTML, CSS Перебрасывание текста на новую строку

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 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
Сообщений: 90
19.06.2014, 11:20  [ТС]     Новую строку, сформированную из текста в поле inputText и сдвига inputShift вывести в editResult #3
Спасибо, по началу студии не нравилась добавка implements и единственным предложением это исправить - была добавка - abstract.

Что по коду не так в 47, 62,63 строках ? Они выделяются серым (нигде не используются) а должны быть завязаны на editText поля.
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 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
Сообщений: 90
19.06.2014, 12:42  [ТС]     Новую строку, сформированную из текста в поле inputText и сдвига inputShift вывести в editResult #5
С начала делалось в еклипсе, там все работает а в студии при привязке к кнопкам возникла проблема.
Алгоритм там "шифр цезаря", сдвиг слова на заданную величину.
Yandex
Объявления
19.06.2014, 12:42     Новую строку, сформированную из текста в поле inputText и сдвига inputShift вывести в editResult
Ответ Создать тему
Опции темы

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