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

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

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

Передача данных в putExtra - Программирование Android

26.10.2015, 20:47. Просмотров 1055. Ответов 0

Здравствуйте передаю данные в другое активити через putExtra
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    public boolean onOptionsItemSelected(MenuItem item) {
        Bundle extras = getIntent().getExtras();
        int id = (int) extras.getLong("id");
        switch (item.getItemId()) {
            case R.id.aM_Home:
                Intent intent = new Intent(getApplicationContext(), MainActivity.class);
                intent.putExtra("id", id);
                Log.d(LOG_TAG, String.valueOf(id));
                startActivity(intent);
                return true;
 
            case R.id.aM_Hom:
                intent = new Intent(getApplicationContext(), Main2Activity.class);
                intent.putExtra("id", id);
                Log.d(LOG_TAG, String.valueOf(id));
                startActivity(intent);
                return true;
            //case R.id.action_add:
            //return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }
Вдругом активити получаю и вывожу влог
Java
1
2
3
Bundle extras = getIntent().getExtras();
        int id = (int) extras.getLong("id");
        Log.d(LOG_TAG, String.valueOf(id));
Получаю почемуто во втором активита 0,хотя при нажати в первом активити в логах выводит все правильно
Пробывал так
Java
1
String getData=getIntent().getExtras().getString("id");
Выводит в логи null
Не понимаю в чем проблема,в других местах в приложении так работает,а здесь нет.
Помогите разобраться.
Полное активити отправки данных
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
package com.metanit.eugene.sqldbapp;
 
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.AdapterView;
import android.widget.ExpandableListView;
import android.widget.SimpleCursorTreeAdapter;
import android.widget.TextView;
 
public class Main28Activity extends ActionBarActivity {
    DatabaseHelper sqlHelper;
    ExpandableListView elvMain;
    DB db;
    SQLiteDatabase mDB;
    final String LOG_TAG = "myLogs";
    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main28);
        sqlHelper = new DatabaseHelper(getApplicationContext());
 
 
        // создаем базу данных
        sqlHelper.create_db();
        // подключаемся к БД
        db = new DB(this);
        db.open();
// открываем подключение
        mDB = sqlHelper.getReadableDatabase();
        Bundle extras = getIntent().getExtras();
        int id = (int) extras.getLong("id");
 
 
 
        Cursor cursor = mDB.rawQuery("select * from " + DatabaseHelper.TABLE5 + " where " +
                DatabaseHelper.COLUMN_PODID + "=?", new String[]{String.valueOf(id)});
 
 
 
 
 
        startManagingCursor(cursor);
        // сопоставление данных и View для групп
        String[] groupFrom = { DB.COMPANY_COLUMN_NAME };
        int[] groupTo = { android.R.id.text1 };
        // сопоставление данных и View для элементов
        String[] childFrom = { DB.PHONE_COLUMN_NAME,DB.PHONE_COLUMN_NAME1 };
        int[] childTo = { R.id.text12,R.id.text1 };
 
 
        // создаем адаптер и настраиваем список
        SimpleCursorTreeAdapter sctAdapter = new MyAdapter(this, cursor,
                android.R.layout.simple_expandable_list_item_1, groupFrom,
                groupTo, R.layout.item3, childFrom,
                childTo);
        elvMain = (ExpandableListView) findViewById(R.id.elvMain);
        elvMain.setAdapter(sctAdapter);
    }
 
    protected void onDestroy() {
        super.onDestroy();
        db.close();
    }
 
 
    @Override
    public boolean onCreateOptionsMenu(final Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_main, menu);
 
        return true;
 
 
    }
 
    public boolean onOptionsItemSelected(MenuItem item) {
        Bundle extras = getIntent().getExtras();
        int id = (int) extras.getLong("id");
        switch (item.getItemId()) {
            case R.id.aM_Home:
                Intent intent = new Intent(getApplicationContext(), MainActivity.class);
                intent.putExtra("id", id);
                Log.d(LOG_TAG, String.valueOf(id));
                startActivity(intent);
                return true;
 
            case R.id.aM_Hom:
                intent = new Intent(getApplicationContext(), Main2Activity.class);
                intent.putExtra("id", id);
                Log.d(LOG_TAG, String.valueOf(id));
                startActivity(intent);
                return true;
            //case R.id.action_add:
            //return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }
 
 
 
    class MyAdapter extends SimpleCursorTreeAdapter {
 
        public MyAdapter(Context context, Cursor cursor, int groupLayout,
                         String[] groupFrom, int[] groupTo, int childLayout,
                         String[] childFrom, int[] childTo
 
        ) {
            super(context, cursor, groupLayout, groupFrom, groupTo,
                    childLayout, childFrom, childTo);
        }
 
 
 
 
 
        protected Cursor getChildrenCursor(Cursor groupCursor) {
            // получаем курсор по элементам для конкретной группы
 
 
            int idColumn = groupCursor.getColumnIndex(DB.COMPANY_COLUMN_ID);
 
            return db.getPhoneData(groupCursor.getInt(idColumn));
 
        }
    }
 
 
}
Полное второе ативити получения данных
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
package com.metanit.eugene.sqldbapp;
 
import android.app.ActionBar;
import android.app.DialogFragment;
import android.app.FragmentManager;
import android.content.ContentValues;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.util.SparseBooleanArray;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
 
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.TextView;
import android.widget.ListView;
import android.database.Cursor;
import android.widget.SimpleCursorAdapter;
 
 
 
import java.sql.SQLException;
 
public class MainActivity extends ActionBarActivity implements View.OnClickListener{
    final String LOG_TAG = "myLogs";
    ListView mList;
    TextView header;
    DatabaseHelper sqlHelper;
    Cursor userCursor;
    SimpleCursorAdapter userAdapter;
 
    Button button;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(this);
        header = (TextView)findViewById(R.id.header);
        mList = (ListView)findViewById(R.id.list);
        android.support.v7.app.ActionBar bar = getSupportActionBar();
// активируем иконку как кнопку домой
        bar.setHomeButtonEnabled(true);
        bar.setDisplayHomeAsUpEnabled(true);
        bar.setDisplayShowHomeEnabled(true);
        bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE);
        bar.setDisplayUseLogoEnabled(true);
        bar.setIcon(R.drawable.ic_launcher);
        bar.setLogo(R.drawable.ic_launcher);
 
 
        sqlHelper = new DatabaseHelper(getApplicationContext());
        // создаем базу данных
        sqlHelper.create_db();
        Bundle extras = getIntent().getExtras();
        int id = (int) extras.getLong("id");
        Log.d(LOG_TAG, String.valueOf(id));
    }
 
    // обработка нажатия кнопки
    public void onButtonClick(View view) {
        Bundle extras = getIntent().getExtras();
        int id = (int) extras.getLong("id");
 
        SparseBooleanArray sbArray = mList.getCheckedItemPositions();
        for (int i = 0; i < sbArray.size(); i++) {
            int key = sbArray.keyAt(i);
 
            int nameColIndex = userCursor.getColumnIndex(DatabaseHelper.COLUMN_NAME);
            ContentValues cv = new ContentValues();
            cv.put(DatabaseHelper.COLUMN_UPRID, userAdapter.getItemId(key));
            cv.put(DatabaseHelper.COLUMN_NAME, userCursor.getString(nameColIndex));
            cv.put(DatabaseHelper.COLUMN_PODID, String.valueOf(id));
            if (sbArray.get(key))
                Log.d(LOG_TAG,String.valueOf(id));
            Log.d(LOG_TAG, String.valueOf(id));
            // получаем новый курсор с данными
            sqlHelper.database.insert(DatabaseHelper.TABLE5, null, cv);
        }
 
 
 
    }
 
 
 
    @Override
    public void onResume(){
        super.onResume();
        try {
            sqlHelper.open();
            // получаем элемент по id из бд
 
            userCursor = sqlHelper.database.rawQuery("select users. * from users,user_lang where users.lang = user_lang.lang", null);
 
 
            String[] headers = new String[]{DatabaseHelper.COLUMN_NAME, DatabaseHelper.COLUMN_YEAR};
            userAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_multiple_choice,
                    userCursor, headers, new int[]{android.R.id.text1, android.R.id.text2}, 0);
            header.setText("Найдено элементов: " + String.valueOf(userCursor.getCount()));
            mList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
            mList.setAdapter(userAdapter);
 
        }
        catch (SQLException ex){}
    }
 
    @Override
    public void onDestroy(){
        super.onDestroy();
        // Закрываем подключения
        sqlHelper.database.close();
        userCursor.close();
 
    }
 
    @Override
    public boolean onCreateOptionsMenu(final Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_main, menu);
 
        return true;
        
        
    }
 
    public boolean onOptionsItemSelected(MenuItem item) {
 
        int id = item.getItemId();
        if (id == R.id.aM_Home) {
 
            Intent intent = new Intent(getApplicationContext(), Main2Activity.class);
            startActivity(intent);
            return true;
        }
        if (id == R.id.aM_Hom) {
 
            Intent intent = new Intent(getApplicationContext(), Main3Activity.class);
            startActivity(intent);
            return true;
        }
 
        return super.onOptionsItemSelected(item);
    }
 
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button:
                Intent intent = new Intent(this,Main3Activity.class);
                startActivity(intent);
                break;
            default:
                break;
        }
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2015, 20:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача данных в putExtra (Программирование Android):

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

Интернет. Передача данных - Программирование Android
Всем привет. Нужна помощь... Каким образам можно создать - (&quot;интернет&quot; сервер) и (клиент), мне нужно написать сервер (интернет) и...

Передача данных звуком - Программирование Android
На смартфоне получена медицинская информация. Требуется передать её в диагностический центр. Но в этьй деревне нет сотовой связи - только...

Передача данных в interface - Программирование Android
Мне необходимо передать данные из файла настроек в интерфейс Retrofita. Вот код интерфейса, необходимо записать в переменную gps, данные...

Передача данных по Bluetooth - Программирование Android
Проблема в следующем, после определенного количества переданных байт(зависит от телефона, на huawei ~ 500, на nexus 4 ~ 1700) от Андроида...

Передача данных по Wifi - Программирование Android
Всем доброго времени суток! Нуждаюсь в помощи... Пишу диплом на тему &quot;Wifi осциллограф&quot;. Имеется такой wifi...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2015, 20:47
Привет! Вот еще темы с ответами:

Передача данных в WebView - Программирование Android
Всем привет) У меня есть : WebView myWebView; void init(View v) { myWebView = (WebView)...

Layout передача данных - Программирование Android
Каким способом можно передать данные из дочернего Layout в родительский? Умею только передавать данные в дочерний Layout через Intent. ...

Doal-up/dsl передача данных - Программирование Android
Надо установить голосовое соединение между двумя андроид смартфонами, после чего выполнить двухстороннюю передачу данных по голосовому...

Передача данных на веб страницу - Программирование Android
Здравствуйте! Пишу приложение, для бесплатной отправки SMS, через сайт оператора. Как можно реализовать передачу данных из EditText, в...


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

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

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