Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Ошибка unreachable statement - Программирование Android

30.11.2016, 21:59. Просмотров 414. Ответов 3
Метки нет (Все метки)

Здравствуйте! при создании простого приложения с базой данных возникла ошибка unreachable statement. Используется фрагментация. Ошибка в этой строчке: btnAdd = (Button) getView().findViewById(R.id.btnAdd); да и во всех последующих.

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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
public class DBHelper extends SQLiteOpenHelper {
 
    public static final int DATABASE_VERSION = 1;
    public static final String DATABASE_NAME = "ArcDB";
    public static final String TABLE_ORDER = "arcboxes";
 
    public static final String KEY_ID = "_id";
    public static final String KEY_NAME = "name";
    public static final String KEY_WEIGHT = "weight";
    public static final String KEY_FROM = "fromm";
    public static final String KEY_TO = "too";
    public static final String KEY_FIO = "fio";
    public static final String KEY_EMAIL = "email";
    public static final String KEY_PHONE = "phone";
 
 
    public DBHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
 
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table " + TABLE_ORDER + " (" + KEY_ID
                + " integer primary key autoincrement," + KEY_NAME + " text," + KEY_WEIGHT + " text," + KEY_FROM
                + " text," + KEY_TO + " text," + KEY_FIO + " text," + KEY_EMAIL + " text," + KEY_PHONE
                + " text" + ");");
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL(TABLE_ORDER);
        onCreate(db);
    }
}
 
 
 
Код вкладки
 
 
public class Tab2Activity extends Fragment implements View.OnClickListener{
 
    DBHelper dbHelper;
 
    Button btnAdd, btnRead, btnClean, btnUpdate, btnDel;
    EditText edId, edName, edWeight, edFrom, edTo, edFIO, edEmail, edPhone;
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.activity_tab2, container, false);
        return rootView;
 
        btnAdd = (Button) getView().findViewById(R.id.btnAdd);
        btnAdd.setOnClickListener(this);
        //btnAdd.setEnabled(true);
        btnRead = (Button) getView().findViewById(R.id.btnRead);
        btnRead.setOnClickListener(this);
 
        btnClean = (Button) getView().findViewById(R.id.btnClean);
        btnClean.setOnClickListener(this);
 
        btnUpdate = (Button) getView().findViewById(R.id.btnUpdate);
        btnUpdate.setOnClickListener(this);
 
        btnDel = (Button) getView().findViewById(R.id.btnDel);
        btnDel.setOnClickListener(this);
 
        edId = (EditText) getView().findViewById(R.id.edId);
        edName = (EditText) getView().findViewById(R.id.edName);
        edWeight = (EditText) getView().findViewById(R.id.edWeight);
        edFrom = (EditText) getView().findViewById(R.id.edFrom);
        edTo = (EditText) getView().findViewById(R.id.edTo);
        edFIO = (EditText) getView().findViewById(R.id.edFIO);
        edEmail = (EditText) getView().findViewById(R.id.edEmail);
        edPhone = (EditText) getView().findViewById(R.id.edPhone);
 
        getActivity();
        dbHelper = new DBHelper(getActivity());
    }
 
    @Override
    public void onClick(View v) {
        String id = edId.getText().toString();
        String name = edName.getText().toString();
        String weight = edWeight.getText().toString();
        String from = edFrom.getText().toString();
        String to = edTo.getText().toString();
        String fio = edFIO.getText().toString();
        String email = edEmail.getText().toString();
        String phone = edPhone.getText().toString();
 
        SQLiteDatabase database = dbHelper.getWritableDatabase();
        //Add items
        ContentValues contentValues = new ContentValues();
 
        switch (v.getId()){
            case R.id.btnAdd:
                if(name.equalsIgnoreCase("") || weight.equalsIgnoreCase("") || from.equalsIgnoreCase("")
                        || to.equalsIgnoreCase("") || fio.equalsIgnoreCase("") || email.equalsIgnoreCase("")
                        || phone.equalsIgnoreCase("")){
                    //Toast.makeText(MainActivity.this, "Incorrect ", Toast.LENGTH_SHORT).show();
                    break;
                }
                contentValues.put(DBHelper.KEY_NAME, name);
                contentValues.put(DBHelper.KEY_WEIGHT, weight);
                contentValues.put(DBHelper.KEY_FROM, from);
                contentValues.put(DBHelper.KEY_TO, to);
                contentValues.put(DBHelper.KEY_FIO, fio);
                contentValues.put(DBHelper.KEY_EMAIL, email);
                contentValues.put(DBHelper.KEY_PHONE, phone);
                database.insert(DBHelper.TABLE_ORDER, null, contentValues);
                break;
 
            case R.id.btnRead:
                Cursor cursor = database.query(DBHelper.TABLE_ORDER, null, null, null, null, null, null);
                if(cursor.moveToFirst()){
                    int idIndex = cursor.getColumnIndex(DBHelper.KEY_ID);
                    int nameIndex = cursor.getColumnIndex(DBHelper.KEY_NAME);
                    int weightIndex = cursor.getColumnIndex(DBHelper.KEY_WEIGHT);
                    int fromIndex = cursor.getColumnIndex(DBHelper.KEY_FROM);
                    int toIndex = cursor.getColumnIndex(DBHelper.KEY_TO);
                    int fioIndex = cursor.getColumnIndex(DBHelper.KEY_FIO);
                    int emailIndex = cursor.getColumnIndex(DBHelper.KEY_EMAIL);
                    int phoneIndex = cursor.getColumnIndex(DBHelper.KEY_PHONE);
                    do {
                        Log.d("mLog", "ID = " + cursor.getInt(idIndex)
                                + ", Description = " + cursor.getString(nameIndex)
                                + ", Weight = " + cursor.getString(weightIndex)
                                + ", From = " + cursor.getString(fromIndex)
                                + ", To = " + cursor.getString(toIndex)
                                + ", FIO = " + cursor.getString(fioIndex)
                                + ", Email = " + cursor.getString(emailIndex)
                                + ", Phone = " + cursor.getString(phoneIndex));
 
                    } while (cursor.moveToNext());
                } else Log.d("mLog", "0 rows");
                cursor.close();
                break;
 
            case R.id.btnClean:
                database.delete(DBHelper.TABLE_ORDER, null, null);
                break;
            case R.id.btnUpdate:
                if(id.equalsIgnoreCase("")){
                    //Toast.makeText(MainActivity.this, "incorrect id", Toast.LENGTH_SHORT).show();
                    break;
                }
                contentValues.put(DBHelper.KEY_NAME, name);
                contentValues.put(DBHelper.KEY_WEIGHT, weight);
                contentValues.put(DBHelper.KEY_FROM, from);
                contentValues.put(DBHelper.KEY_TO, to);
                contentValues.put(DBHelper.KEY_FIO, fio);
                contentValues.put(DBHelper.KEY_EMAIL, email);
                contentValues.put(DBHelper.KEY_PHONE, phone);
                int updCount = database.update(DBHelper.TABLE_ORDER, contentValues, DBHelper.KEY_ID + "= ?", new String[] {id});
                Log.d("mLog", "Updates rows count = " + updCount);
                break;
            case R.id.btnDel:
                if (id.equalsIgnoreCase("")){
                    //Toast.makeText(MainActivity.this, "incorrect id", Toast.LENGTH_SHORT).show();
                    break;
                }
                int delCount = database.delete(DBHelper.TABLE_ORDER, DBHelper.KEY_ID + "= ?", new String[] {id});
                Log.d("mLog", "Deleted rows count = " + delCount);
        }
 
    }
 
}
Добавлено через 43 минуты
Это уже исправил, но теперь другая проблема: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2016, 21:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка unreachable statement (Программирование Android):

Call to super must be first statement in constructor - Программирование Android
Выскакивает такая ошибка! Можно ли ее обойти? Зачем вообще нужна эта блокировка? Ситуация: Есть предок, который в конструкторе...

Передача connection/statement во фрагмент - Программирование Android
В моём приложении в одном активити можно вызвать несколько фрагментов, в каждом из которых запрашивается информация по разным критериям из...

Ошибка unreachable statement - Java
package yourreaction; import javafx.application.Application; import javafx.event.*; import javafx.geometry.Pos; import...

Unreachable code Cath statement missing ) Type name expected - C++
Всем Салют!У меня проблема в проге.Хочу создать исключение: #include <vcl.h> #pragma hdrstop #include "Unit1.h" ...

Нюансы синтаксиса: как работают выражения вида statement = statement = statement? - C++
Всем привет. Что значит такое выражение в c++? c = c2 = c/2; и как вообще работают такие выражения?

Ошибка Unreachable code - Java SE
Ребята как мне бесит эта ошибка Unreachable code при таком коде public void add() { mem=0; mem=5; while(true) { ...

3
Alex_Fedor
32 / 32 / 5
Регистрация: 20.01.2015
Сообщений: 230
01.12.2016, 06:28 #2
Цитата Сообщение от OneMoreBrave24 Посмотреть сообщение
другая проблема
Похоже вы пытаетесь обратиться к какому то View которого нет. Попробуйте продублировать findViewById, но пользуясь автозаполнением.
1
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
01.12.2016, 09:06 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
по-вервых используй теги для оформления кода
во-вторых обычно показывают полный лог ошибки, тоже оформленный в теги

и по теме
в onCreateView надо писать не getView().findBlaBla
а rootView.findViewByID
1
OneMoreBrave24
0 / 0 / 0
Регистрация: 09.10.2015
Сообщений: 18
01.12.2016, 22:43  [ТС] #4
Паблито, спасибо огромное! Учту замечания!
0
01.12.2016, 22:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2016, 22:43
Привет! Вот еще темы с ответами:

Ошибка masm Missing or unreachable CS - Assembler
.model small .386 .stack 100h .code start: mov ax,0003h int 10h cld mov eax, 1F201F00h mov bx,0F20h mov...

Namespace declaration statement has to be the very first statement in the script - PHP
Здравствуйте! У меня такая проблема: Запускаю свой проект. Пишет: "Namespace declaration statement has to be the very first statement in...

Ошибка error in statement - Turbo Pascal
Ребята, помогите! В ниже приведённом коде Паскаль выдаёт error in statement на процедуре "ZAKR" Никак не могу разобраться в чём проблема. ...

Ошибка Statement missing ; - C (СИ)
Моя первая прога с классом. Компилятор ругается, не могу понять в чем ошибка... подскажите пожалуйста :) #include <iostream.h> ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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