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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
#1

ListView, База данных и SimpleCursorAdapter - onItemClick срабатывает только после добавления данных - Программирование Android

16.11.2014, 22:02. Просмотров 1688. Ответов 14
Метки нет (Все метки)

Здравствуйте!
Подскажите, плиз, решение проблемы новичку...
есть БД... подключаюсь через SimpleCursorAdapter ...
Нажатие на строке ListView срабатывает только после добавления данных в базу (обрабатывается возврат в MainActivity)...
если просто перейти в активность - нажатие не обрабатывается... (((
В чем может быть проблема??
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2014, 22:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ListView, База данных и SimpleCursorAdapter - onItemClick срабатывает только после добавления данных (Программирование Android):

SimpleCursorAdapter(ListView заполняется данными только после прокрутки скрола) - Программирование Android
Помогите решить задачу. У меня ListView начинает заполняться данными, только после первой прокрутки списка. Т.е в начальный момент список...

Вывод из базы данных в ListView через SimpleCursorAdapter - Программирование Android
Доброе время суток. Пишу программу под Андроид в среде Android Studio и возникла проблема с выводом данных в listview через...

ListView. После добавления кнопки перестал быть доступен сам ListView - Программирование Android
Кастомизировал ListView с помощью нескольких TextView. Но после того, как добавил ImageButton сам список стал недоступен для клика, а...

Android, ListView, база данных SQLite - Программирование Android
Как достать картинку из БД (SQLite) и поместить её в ListView??? помогите, пожалуйста :)

Recyclerview при onLongItemClick срабатывает и onItemClick? - Программирование Android
использую такой класс для клика по айтемам: нажимаю долгий клик открывается контекстменю а так же происходит обычный клих на...

Получение данных с SimpleCursorAdapter - Программирование Android
Скопировал себе в приложение пример из библиотеки шерлок, с табами. оно работает хорошо, но мне нужно переделать ее под свои нужды. И во...

14
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
17.11.2014, 07:55 #2
Что значит "после добавления данных в базу"? Каким образом и кто их добавляет?
0
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
17.11.2014, 08:44  [ТС] #3
Пользователь добавляет... кнопкой... с двух Edit- ов...

Добавлено через 1 минуту
База простенькая - локальная
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
17.11.2014, 09:07 #4
Я сталкивался с описанной проблемой при изменении параметров лаяута, у вас там ничего не меняется программно?
Ну и после добавления обновляете ли адаптер методами?
Java
1
2
myAdapter.changeCursor(cursor); 
myAdapter.notifyDataSetChanged();
0
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
17.11.2014, 10:53  [ТС] #5
Нет, вроде... там ничего не меняется...
пробовал обновлять - пофиг... (

Добавлено через 1 минуту
Приду домой - закину сюда коды... может,, конечно, я где-то что-то прозявал...

Добавлено через 1 час 34 минуты
Вот творчество...

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
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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
...
 
public class MainActivity extends Activity implements OnClickListener {
 
    static final int PICK_CONTACT_REQUEST = 1;[LIST=1][/LIST]    static final int REQUEST_CODE =2;
 
    SharedPreferences sPref;
 
    public static final String APP_PREFERENCES_NAME = "Nickname";
    public static final String APP_PREFERENCES_NUMBER = "Number";
    public static final String APP_PREFERENCES_CODE = "Code";
    public static final String APP_PREFERENCES_OPER = "Oper";
 
    EditText editText, edText, etName;
    Button btnName, btnCalls, btnBmj, btnSaveCall, btnCode;
    CheckBox checkBox;
    TextView tvNameOper;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        tvNameOper = (TextView) findViewById(R.id.tvNameOper);
 
        btnName = (Button) findViewById(R.id.btnName);
        btnBmj = (Button) findViewById(R.id.btnBmj);
        btnCalls = (Button) findViewById(R.id.btnCalls);
        btnSaveCall = (Button) findViewById(R.id.btnSaveCall);
        btnCode = (Button) findViewById(R.id.btnCode);
 
        editText = (EditText) findViewById(R.id.editText);
        edText = (EditText) findViewById(R.id.edText);
        etName = (EditText) findViewById(R.id.etName);
 
        checkBox = (CheckBox) findViewById(R.id.checkBox);
 
        btnName.setOnClickListener(this);
        btnCalls.setOnClickListener(this);
        btnBmj.setOnClickListener(this);
        btnSaveCall.setOnClickListener(this);
        btnCode.setOnClickListener(this);
 
        editText.setOnClickListener(this);
        edText.setOnClickListener(this);
 
        checkBox.setOnClickListener(this);
 
        loadText();
    }
 
    @Override
    public void onClick(View v) {
        if (checkBox.isChecked()) {
            edText.setEnabled(true);
            edText.isFocusable();
            edText.selectAll();
            int textLength = edText.getText().length();
            edText.setSelection(textLength, textLength);
        } else {
            edText.setEnabled(false);
        }
        switch (v.getId()) {
            case R.id.btnName:
                Intent pickContactIntent = new Intent(Intent.ACTION_PICK, Uri.parse("content://contacts"));
                pickContactIntent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
                startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);
                break;
 
            case R.id.btnCalls:
                String[] strFields = {CallLog.Calls.NUMBER, CallLog.Calls.CACHED_NAME};
                String strOrder = CallLog.Calls.DATE + " DESC";
                Cursor mCallCursor = getContentResolver()
                        .query(CallLog.Calls.CONTENT_URI, strFields, null, null, strOrder);
                if (mCallCursor != null && mCallCursor.moveToFirst()) {
                    int columns = mCallCursor.getColumnIndex(CallLog.Calls.NUMBER);
                    String numbers = mCallCursor.getString(columns).replaceAll(" ", "").trim();
                    int sip = mCallCursor.getColumnIndex(CallLog.Calls.CACHED_NAME);
                    String name = mCallCursor.getString(sip);
 
                    if (numbers.length() == 13)
                        editText.setText(edText.getText() + numbers.substring(3));
                    else
                        editText.setText(edText.getText() + numbers);
                    etName.setText(name);
                }
                break;
 
            case R.id.btnBmj:
                String encodedHash = Uri.encode("#");
               // String encodedPlus = Uri.encode("+");
                String ussd = editText.getText() + encodedHash;
                startActivityForResult(new Intent("android.intent.action.DIAL",
                        Uri.parse("tel:" + ussd)), 1);
 
                break;
 
            case R.id.btnSaveCall:
                Intent saveCallIntent = new Intent(this, CallsSave.class);
                saveCallIntent.putExtra("name", etName.getText().toString());
                saveCallIntent.putExtra("number", editText.getText().toString());
                startActivity(saveCallIntent);
                break;
            case R.id.btnCode:
                Intent saveCode = new Intent(this, SaveCode.class); // Вот этот Intent  отправляет в ту активити, в которой ListView не работает
 
                startActivityForResult(saveCode, REQUEST_CODE);
                break;
        }
    }
 
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == RESULT_OK) {
            switch (requestCode) {
                case PICK_CONTACT_REQUEST:
 
                    if (requestCode == PICK_CONTACT_REQUEST) {
                        Uri contactUri = data.getData();
                        String[] projection = {ContactsContract.CommonDataKinds.Phone.NUMBER,
                                ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME};
                        Cursor cursor = getContentResolver()
                                .query(contactUri, projection, null, null, null);
                        cursor.moveToFirst();
                        int column = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
                        String number = cursor.getString(column).replaceAll(" ", "").
                                replaceAll("-", "").replaceAll(",", " ").replaceAll("[)]", "").replaceAll("[(]", "").trim();
                        int sip = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
                        String name = cursor.getString(sip);
 
                        if (number.length() == 13)
                            editText.setText(edText.getText() + number.substring(3));
                        if (number.length() == 12)
                            editText.setText(edText.getText() + number.substring(2));
                        if (number.length() == 11)
                            editText.setText(edText.getText() + number.substring(1));
                        if (number.length() == 10)
                            editText.setText(edText.getText() + number);
                        if (number.length() < 10)
                            editText.setText("НЕПРАВИЛЬНО НАБРАН НОМЕР!");
                        if (number.length() > 13)
                            editText.setText("НЕПРАВИЛЬНО НАБРАН НОМЕР!");
 
                        etName.setText(name);
                        break;
                    }
                case REQUEST_CODE:   // тут принимаем ответ....
                      if (data == null) {
                         return;
                       }
                    if (requestCode == REQUEST_CODE) {   
                       String cods = data.getStringExtra(SaveCode.CODES);
                       String names = data.getStringExtra(SaveCode.NAMES);
                       tvNameOper.setText(names);
                       edText.setText(cods);
 
                             } else {
                      break;
                    }
            }
        }
    }
    void saveText() {
        sPref = getSharedPreferences("MyPref", MODE_PRIVATE);
        SharedPreferences.Editor ed = sPref.edit();
        ed.putString(APP_PREFERENCES_NAME, editText.getText().toString());
        ed.putString(APP_PREFERENCES_NUMBER, edText.getText().toString());
        ed.putString(APP_PREFERENCES_CODE, etName.getText().toString());
        ed.putString(APP_PREFERENCES_OPER, tvNameOper.getText().toString());
        ed.commit();
        Toast.makeText(this, "Cохранено", Toast.LENGTH_SHORT).show();
    }
    void loadText() {
        sPref = getSharedPreferences("MyPref", MODE_PRIVATE);
        String Nickname = sPref.getString(APP_PREFERENCES_NAME, "");
        String Number = sPref.getString(APP_PREFERENCES_NUMBER, "");
        String Code = sPref.getString(APP_PREFERENCES_CODE, "");
        String Oper = sPref.getString(APP_PREFERENCES_OPER, "");
        editText.setText(Nickname);
        edText.setText(Number);
        etName.setText(Code);
        tvNameOper.setText(Oper);
        Toast.makeText(this, "Номер загружен", Toast.LENGTH_SHORT).show();
    }
    @Override
    protected void onPause() {
        saveText();
        super.onPause();
    }
0
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
17.11.2014, 10:55  [ТС] #6
Та самая активити, которая не хочет работать... SaveCode

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
public class SaveCode extends Activity implements OnClickListener {
    public final static String CODES = "piton.ru.servicecall.CODES";
    public final static String NAMES = "piton.ru.servicecall.NAMES";
 
    public static final String APP_PREFERENCES_NAME = "Name";
    public static final String APP_PREFERENCES_CODE = "Cd";
    SharedPreferences svPref;
 
    private static final int CM_DELETE_ID = 1;
    
    DB db;
    SimpleCursorAdapter scAdapter;
    Cursor cursor;
    ListView listV;
 
    EditText nameOper, codOper;
    Button btnSaveKod, btnDl;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.savekod);
 
        // открываем подключение к БД
        db = new DB(this);
        db.open();
        // получаем курсор
        cursor = db.getAllData();
        startManagingCursor(cursor);
        // формируем столбцы сопоставления
        String[] from = new String[]{"txt", "tel"};
        int[] to = new int[]{R.id.nameOpr, R.id.codOpr};
        scAdapter = new SimpleCursorAdapter(this, R.layout.cod_item, cursor, from, to);
        listV = (ListView) findViewById(R.id.listV);
        listV.setAdapter(scAdapter);
 
        registerForContextMenu(listV);
 
        btnSaveKod = (Button) findViewById(R.id.btnSaveKod);
        btnDl = (Button) findViewById(R.id.btnDl);
        nameOper = (EditText) findViewById(R.id.nameOper);
        codOper = (EditText) findViewById(R.id.codOper);
 
        btnSaveKod.setOnClickListener(this);
        btnDl.setOnClickListener(this);
 
        loadText();
      
    }
 
    @Override
    public void onClick(View v) {
        String name = nameOper.getText().toString();
        String tel = codOper.getText().toString();
 
        switch (v.getId()) {
            case R.id.btnSaveKod:
                db.addRec(name, tel);
                // обновляем курсор              
                cursor.requery();
 
                Toast.makeText(getApplicationContext(), "Добавлено: " + nameOper.getText().toString()
                                + " " + codOper.getText().toString(),
                        Toast.LENGTH_SHORT).show();
                break;
 
            case R.id.btnDl:
                db.deleteAll();
                cursor.requery();
 
                Toast.makeText(getApplicationContext(), "Список очищен",
                        Toast.LENGTH_SHORT).show();
                break;
        }
 
    listV.setOnItemClickListener(new AdapterView.OnItemClickListener() // Вот работает, но только после добавления записи в базу
    {
 
        @Override
        public void onItemClick (AdapterView <?> parent, View itemClicked,
        int position, long id) {
 
            TextView tv1 = (TextView) itemClicked.findViewById(R.id.nameOpr);
            TextView tv2 = (TextView) itemClicked.findViewById(R.id.codOpr);
            String nameO = tv1.getText().toString();
            String codO = tv2.getText().toString();
            String namecod = nameO + " " + codO;
 
            Intent saveCodIntent = new Intent();
            saveCodIntent.putExtra(NAMES, tv1.getText().toString());
            saveCodIntent.putExtra(CODES, tv2.getText().toString());
            setResult(RESULT_OK, saveCodIntent);
 
            scAdapter.changeCursor(cursor);
            scAdapter.notifyDataSetChanged();
            cursor.requery();
 
            finish();
 
            Toast.makeText(getApplicationContext(), namecod,
                    Toast.LENGTH_SHORT).show();
        }
      });
    }
 
 
        void saveText() {
        svPref = getSharedPreferences("MyCode", MODE_PRIVATE);
        SharedPreferences.Editor ed = svPref.edit();
        ed.putString(APP_PREFERENCES_NAME, nameOper.getText().toString());
        ed.putString(APP_PREFERENCES_CODE, codOper.getText().toString());
        ed.commit();
        Toast.makeText(this, "Cохранено", Toast.LENGTH_SHORT).show();
    }
 
    void loadText() {
        svPref = getSharedPreferences("MyCode", MODE_PRIVATE);
        String Nickname = svPref.getString(APP_PREFERENCES_NAME, "");
        String Code = svPref.getString(APP_PREFERENCES_CODE, "");
        nameOper.setText(Nickname);
        codOper.setText(Code);
        Toast.makeText(this, "Код загружен", Toast.LENGTH_SHORT).show();
    }
 
    @Override
    protected void onPause() {
        saveText();
        super.onPause();
    }
 
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.add(0, CM_DELETE_ID, 0, "Удалить запись");
    }
 
    @Override
    public boolean onContextItemSelected(MenuItem item) {
        if (item.getItemId() == CM_DELETE_ID) {
            // получаем инфу о пункте списка
            AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item.getMenuInfo();
            db.delRec(acmi.id);
            cursor.requery();
            return true;
        }
        return super.onContextItemSelected(item);
    }
 
}
Добавлено через 35 секунд
Это класс БД

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
public class DB {
 
    private static final String DB_NAME = "mydb";
    private static final int DB_VERSION = 1;
    private static final String DB_TABLE = "mytab";
 
    public static final String COLUMN_ID = "_id";
    public static final String COLUMN_TXT = "txt";
    public static final String COLUMN_COD = "tel";
 
    private static final String DB_CREATE =
            "create table " + DB_TABLE + "(" +
                    COLUMN_ID + " integer primary key autoincrement, " +
                    COLUMN_TXT + " text, " +
                    COLUMN_COD + " text" +
                    ");";
 
    private final Context mCtx;
 
 
    private DBHelper mDBHelper;
    private SQLiteDatabase mDB;
 
    public DB(Context ctx) {
        mCtx = ctx;
    }
 
    // открыть подключение
    public void open() {
        mDBHelper = new DBHelper(mCtx, DB_NAME, null, DB_VERSION);
        mDB = mDBHelper.getWritableDatabase();
    }
 
    // закрыть подключение
    public void close() {
        if (mDBHelper!=null) mDBHelper.close();
    }
 
    // получить все данные из таблицы DB_TABLE
    public Cursor getAllData() {
        return mDB.query(DB_TABLE, null, null, null, null, null, null);
    }
 
    // добавить запись в DB_TABLE
    public void addRec(String txt, String tel) {
        ContentValues cv = new ContentValues();
        cv.put(COLUMN_TXT, txt);
        cv.put(COLUMN_COD, tel);
        mDB.insert(DB_TABLE, null, cv);
    }
 
    // удалить запись из DB_TABLE
    public void delRec(long id) {
        mDB.delete(DB_TABLE, COLUMN_ID + " = " + id, null);
    }
    // удалить все записи из DB_TABLE
    public void deleteAll() {
        mDB.delete(DB_TABLE, null, null);
    }
 
    // класс по созданию и управлению БД
    private class DBHelper extends SQLiteOpenHelper {
 
        public DBHelper(Context context, String name, CursorFactory factory,
                        int version) {
            super(context, name, factory, version);
        }
 
        // создаем и заполняем БД
        @Override
        public void onCreate(SQLiteDatabase db) {
            db.execSQL(DB_CREATE);
 
            ContentValues cv = new ContentValues();
            for (int i = 1; i < 5; i++) {
                cv.put(COLUMN_TXT, "sometext " + i);
                cv.put(COLUMN_COD, "sometext " + i);
                db.insert(DB_TABLE, null, cv);
            }
        }
 
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        }
    }
}
0
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
17.11.2014, 10:55  [ТС] #7
Главный экран


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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
<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=".MainActivity">
 
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        tools:context=".MainActivity"
        android:weightSum="1">
 
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
 
            <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="Отправить БОМЖика"
                android:id="@+id/btnBmj"
                android:layout_marginTop="@dimen/activity_vertical_margin"
                android:textStyle="bold"
                android:textSize="@dimen/activity_horizontal_margin"
                android:background="@android:drawable/btn_default" />
        </LinearLayout>
 
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:weightSum="1"
            android:baselineAligned="false">
 
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:id="@+id/tvNameOper"
                android:background="@android:drawable/dialog_holo_light_frame"
                android:textSize="20dp"
                android:layout_weight="1.16"
                android:autoText="false"
                android:gravity="center"
                android:hint="Оператор"
                android:textStyle="bold" />
 
            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/edText"
                android:text="*104*"
                android:textColor="#ffff2413"
                android:textStyle="bold"
                android:editable="true"
                android:clickable="false"
                android:background="@android:drawable/editbox_background_normal"
                android:enabled="false"
                android:focusable="true"
                android:inputType="phone"
                android:textSize="14dp" />
 
            <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Ред.код"
                android:id="@+id/checkBox"
                android:onClick="onCheckboxClicked"
                android:background="@android:drawable/editbox_background_normal"
                android:textStyle="bold"
                android:textSize="10dp" />
 
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Коды"
                android:id="@+id/btnCode"
                android:background="@android:drawable/btn_default" />
 
        </LinearLayout>
 
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
 
            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textPersonName"
                android:ems="10"
                android:id="@+id/etName"
                android:gravity="center"
                android:hint="Имя"
                android:background="@android:drawable/dialog_holo_light_frame"
                android:clickable="false"
                android:editable="false"
                android:focusable="false"
                android:focusableInTouchMode="false"
                android:textSize="30dp" />
        </LinearLayout>
 
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
 
            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="phone|textUri"
                android:text=""
                android:ems="10"
                android:id="@+id/editText"
                android:editable="true"
                android:enabled="true"
                android:linksClickable="true"
                android:longClickable="true"
                android:clickable="true"
                android:textAlignment="center"
                android:textColor="#eb1e2fff"
                android:typeface="serif"
                android:focusable="true"
                android:hint="Код"
                android:gravity="center"
                android:background="@android:drawable/editbox_dropdown_light_frame"
                android:textStyle="bold">
            </EditText>
        </LinearLayout>
 
 
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
 
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Выбрать номер телефона"
                android:id="@+id/textView"
                android:textStyle="bold"
                android:textAlignment="center"
                android:gravity="center"
                android:background="@android:drawable/editbox_background_normal"
                android:textSize="20dp" />
        </LinearLayout>
 
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:weightSum="1">
 
            <Button
                android:id="@+id/btnName"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Из контактов"
                android:textStyle="bold"
                android:background="@android:drawable/btn_default_small"
                android:layout_weight="0.78">
            </Button>
 
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Из журнала вызовов"
                android:id="@+id/btnCalls"
                android:textStyle="bold"
                android:background="@android:drawable/btn_default" />
 
        </LinearLayout>
 
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal">
 
            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Сохранить/История"
                android:id="@+id/btnSaveCall"
                android:background="@android:drawable/btn_default_small" />
        </LinearLayout>
 
 
    </LinearLayout>
 
</RelativeLayout>
0
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
17.11.2014, 11:31  [ТС] #8
Второй экран..

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
<?xml version="1.0" encoding="utf-8"?>
<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=".SaveCode">
 
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/linearLayout4">
 
        <TextView
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Коды операторов"
            android:id="@+id/tvKod"
            android:textSize="20dp"
            android:textStyle="bold"
            android:gravity="center"
            android:background="@android:drawable/gallery_thumb" />
 
    </LinearLayout>
 
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/linearLayout4"
        android:layout_centerHorizontal="true"
        android:id="@+id/linearLayout3">
 
        <EditText
 
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/nameOper"
            android:layout_weight="0.78"
            android:background="@android:drawable/editbox_background_normal"
            android:singleLine="false"
            android:hint="Оператор"
            android:gravity="center" />
 
        <EditText
 
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/codOper"
            android:layout_weight="0.38"
            android:background="@android:drawable/editbox_background_normal"
            android:gravity="center"
            android:hint="Код"
            android:inputType="phone" />
    </LinearLayout>
 
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/linearLayout3"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:id="@+id/linearLayout5">
 
        <Button
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Добавить код"
            android:id="@+id/btnSaveKod"
            android:layout_below="@+id/linearLayout3"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:background="@android:drawable/btn_default"
            android:textStyle="bold" />
    </LinearLayout>
 
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"></LinearLayout>
 
    <ListView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/listV"
        android:layout_below="@+id/linearLayout5"
        android:layout_above="@+id/btnDl" />
 
    <Button
        android:focusable="false"
        android:focusableInTouchMode="false"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Очистить все"
        android:id="@+id/btnDl"
        android:background="@android:drawable/btn_default"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />
 
</RelativeLayout>
И - Разметка для ListView

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <TextView
        android:id="@+id/nameOpr"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20dp"
        android:textStyle="bold"
        android:text="TextView"/>
 
    <TextView
        android:id="@+id/codOpr"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="14dp"
        android:textStyle="italic"
        android:text="TextView" />
 
</LinearLayout>
Добавлено через 35 минут
Цитата Сообщение от Rube Посмотреть сообщение
Ну и после добавления обновляете ли адаптер методами?
Так, именно после добавления записи - срабатывает клик, а при переходе в активити - нет, хотя все данные в листе есть... (((
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
17.11.2014, 13:22 #9
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Прошерстил ваш код, слушатель listV.setOnItemClickListener вставьте в метод onCreate и все заработает.
1
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
17.11.2014, 13:46  [ТС] #10
Цитата Сообщение от Rube Посмотреть сообщение
Прошерстил ваш код, слушатель listV.setOnItemClickListener вставьте в метод onCreate и все заработает.
СПАСИБО ОГРОМНОЕ!! ))) Все заработало!!! Вам - плюс!!! )))

Добавлено через 3 минуты
Можно еще пару вопросиков по этому проекту? )
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
17.11.2014, 13:50 #11
Можно, пока пример я у себя не удалил.
0
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
17.11.2014, 14:07  [ТС] #12
Спасибочки! )
1. Как сделать, чтобы при старте второго активити поля-Эдиты оставались доступными для ввода, а клавиатура не выскакивала сразу, а толтко при нажатии на поле?
2. Могу ли я с этим же классом DB создать еще таблицу и вносить в нее данные с третьей активити (данные не связанные с первой таблицей), или нужно создать другой клас для БД для работы с друой активити и таблицей?
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
17.11.2014, 15:06 #13
1. Ну это легко нагуглить, я с клавой пока не работал.
2. Конечно можно, почему нет? БД у Вас одна, в ней некоторое кол-во таблиц. Создавайте их также как и первую.
3. Кнопка при выскакивании клавиатуры также поднимается. Исправьте.
1
androbro
326 / 287 / 61
Регистрация: 17.10.2014
Сообщений: 846
18.11.2014, 08:56 #14
Seivan, по поводу клавиатуры могу подсказать способ который мне лично помог.
В манифесте для вашей активити пропишите(выделено жирным):
<activity
...
...
android:windowSoftInputMode="stateHidden" >
</activity>
1
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
18.11.2014, 10:33  [ТС] #15
Спасибо всем большое !
Цитата Сообщение от Rube Посмотреть сообщение
3. Кнопка при выскакивании клавиатуры также поднимается. Исправьте.
Исправил... и клаву тоже ))
Займусь второй таблицей... Даст Бог - получится ))

Добавлено через 3 минуты
Цитата Сообщение от androbro Посмотреть сообщение
Seivan, по поводу клавиатуры могу подсказать способ который мне лично помог.
В манифесте для вашей активити пропишите(выделено жирным):
<activity
...
...
android:windowSoftInputMode="stateHidden" >
</activity>
Нашел такое решение

android:windowSoftInputMode="adjustPan"

И клавиатура не вылазит сразу и кнопка с ней не лезет на экран... )

Добавлено через 10 минут
А кто-нибудь подскажет по вот этому моему вопросу:
Выбор телефона из журнала вызовов

Или журнал нельзя вызвать так, как контакты, и его можно только в листвью загружать, чтобы потом обработать копирование??
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2014, 10:33
Привет! Вот еще темы с ответами:

ListView после загрузки данных подсветить 1-ый элемент - Программирование Android
Доброго времени суток! Подскажите, как подсветить n-ый элемент в ListView после загрузки данных? пробую list1.setSelection(1) - не...

Прикрутить RadioGroup к ListView(SimpleCursorAdapter) - Программирование Android
Не могу понять как реализовать одиночный выбор из списка: Сейчас выводит список компаний, где я могу сделать множественный выбор, а мне...

Обновление ListView после добавления записи - Программирование Android
Выбираю записи из БД и вывожу их в ListView. В этом же активити есть кнопка добавления записи в БД. После добавления я хочу что б эта...

После добавления второго класса БД срабатывает исключение. Source not found - Программирование Android
Было приложение с одним классом БД. всё работало. Затем добавил второй класс БД. после этого в активити на строке Cursor c2 =...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
18.11.2014, 10:33
Ответ Создать тему
Опции темы

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