Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Переход на новое activity с элемента listView, заполненного через SimpleCursorAdapter

Здравствуйте! Помогите разобраться с такой проблемой:
Есть список listView, который получает данные из БД через SimpleCursorAdapter. По нажатию на элемент списка нужно перейти на новое Activity, то есть нужно достать position, у меня не выходит...
Нагуглить тоже не получается, везде примеры либо с ListActivity, либо с ArrayAdapter, либо только с логами, без перехода на другое activity.

Еще здесь же нужно сделать, чтобы цвета элементов чередовались. Думаю, это тоже можно сделать с помощью position, но пока даже не могу попробовать. Изучаю программирование Android совсем недавно, но проект нужно сделать срочно

Вот код activity:
Код Java(TM) 2 Platform Standard Edition 5.0
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
public class BasicoActivity extends ActionBarActivity  {
 
        ListView lv1;
    Cursor words;
    MyDatabase db;
    String LOG_TAG = "myLogs";
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_basico);
 
        final ActionBar actionBar = getSupportActionBar();
        actionBar.setHomeButtonEnabled(true);
        actionBar.setDisplayHomeAsUpEnabled(true);
 
        lv1 = (ListView) findViewById(R.id.lv1);
        db = new MyDatabase(this);
        words = db.getWords();
        startManagingCursor(words);
 
        SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
                R.layout.item_lesson,
                words,
                new String[]{"word", "trans_w"},
                new int[] {R.id.espUnit, R.id.rusUnit});
        lv1.setAdapter(adapter);
 
        lv1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> av, View v, int position, long id) {
 
                Log.d(LOG_TAG, "itemClick: position = " + position + ", id = "
                        + id);
 
                //здесь ошибка: incompatible types
                //int pos = av.getAdapter().getItem(position);
 
                //выход в новое Activity
                //Intent intent1 = new Intent(BasicoActivity.this, MainActivity.class);
                //startActivity(intent1);
                }
        });
 
    }
Вот код разметки элемента списка item_lesson.xml:
Код XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/espUnit"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="10dp"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/rusUnit"
        android:layout_marginBottom="10dp"
        android:layout_marginLeft="10dp"/>
</LinearLayout>
Файл разметки activity_basico.xml:
Код XML
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<ListView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/lv1"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".BasicoActivity"/>
Ответ: -37_Holod, понятно теперь, спасибо, буду знать!
Вопрос: Передача данных из activity в service

Здравствуйте, как можно организовать передачу данных из activity в сервис, если сервис уже запущен и работает.
как он должен отлавливать сообщения
Ответ: Мой об этом
Вопрос: Вытащить информацию из SQLite на новое Activity

Здравствуйте!
У меня есть 3 класса:
В DB создаю базу данных, записи добавляются прямо из приложения.
В MainActivity по данным из базы создаю ListView, заполняемый с помощью CursorLoader.
По идее, в зависимости от выбранного объекта из ListView запускается новое activity, которое отображает данные из БД по этому объекту. За это должен отвечать третий класс - OneEvent.

Реализовать открытие нового activity у меня получилось, вопрос - как вытащить информацию БД на этот activity?

Коды классов:
MainActivity
Java(TM) 2 Platform Standard Edition 5.0
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
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
 
import android.content.Context;
import android.database.Cursor;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.support.v4.widget.SimpleCursorAdapter;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.AdapterView;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.ListView;
 
 
import java.util.concurrent.TimeUnit;
 
public class MainActivity extends AppCompatActivity implements LoaderCallbacks<Cursor> {
 
    private static final int CM_DELETE_ID = 1;
    ListView lvData;
    DB db;
    SimpleCursorAdapter scAdapter;
    final String LOG_TAG = "myLogs";
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
 
        // открываем подключение к БД
        db = new DB(this);
        db.open();
 
        // формируем столбцы сопоставления
        String[] from = new String[] { DB.COLUMN_TITLE, DB.COLUMN_DATE, DB.COLUMN_TIME };
        int[] to = new int[] { R.id.tvTextTitle, R.id.tvTextDate, R.id.tvTextTime };
 
        // создаем адаптер и настраиваем список
        scAdapter = new SimpleCursorAdapter(this, R.layout.item, null, from, to, 0);
        lvData = (ListView) findViewById(R.id.lvData);
        lvData.setAdapter(scAdapter);
 
        // добавляем контекстное меню к списку
        registerForContextMenu(lvData);
 
        // создаем лоадер для чтения данных
        getSupportLoaderManager().initLoader(0, null, this);
 
       lvData.setOnItemClickListener(new AdapterView.OnItemClickListener() {
           @Override
         public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
       //Log.d(LOG_TAG, "itemClick: position = " + position + ", id = " + id);
 
             Intent myIntent = new Intent(MainActivity.this , OneEvent.class);
               startActivityForResult(myIntent, 0);
        }
         });
 
        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        menu.add(0, 1, 0, "Добавить событие");
        return super.onCreateOptionsMenu(menu);
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        StringBuilder sb = new StringBuilder();
        //noinspection SimplifiableIfStatement
        sb.append("Item Menu");
        Intent intent = new Intent(this, AddEvent.class);
        startActivityForResult(intent, 1);
 
        return super.onOptionsItemSelected(item);
    }
 
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (data == null) {return;}
        String title = data.getStringExtra("title");
        String date = data.getStringExtra("date");
        String time = data.getStringExtra("time");
        db.addRec(title, date, time);
        getSupportLoaderManager().getLoader(0).forceLoad();
    }
 
    public void onCreateContextMenu(ContextMenu menu, View v,
                                    ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.add(0, CM_DELETE_ID, 0, R.string.delete_record);
    }
 
    public boolean onContextItemSelected(MenuItem item) {
        if (item.getItemId() == CM_DELETE_ID) {
            // получаем из пункта контекстного меню данные по пункту списка
            AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item
                    .getMenuInfo();
            // извлекаем id записи и удаляем соответствующую запись в БД
            db.delRec(acmi.id);
            // получаем новый курсор с данными
            getSupportLoaderManager().getLoader(0).forceLoad();
            return true;
        }
        return super.onContextItemSelected(item);
    }
 
    protected void onDestroy() {
        super.onDestroy();
        // закрываем подключение при выходе
        db.close();
    }
 
    @Override
    public Loader<Cursor> onCreateLoader(int id, Bundle bndl) {
        return new MyCursorLoader(this, db);
    }
 
    @Override
    public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
        scAdapter.swapCursor(cursor);
    }
 
    @Override
    public void onLoaderReset(Loader<Cursor> loader) {
 
    }
 
    static class MyCursorLoader extends CursorLoader {
 
        DB db;
 
        public MyCursorLoader(Context context, DB db) {
            super(context);
            this.db = db;
        }
 
        @Override
        public Cursor loadInBackground() {
            Cursor cursor = db.getAllData();
            try {
                TimeUnit.SECONDS.sleep(3);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return cursor;
        }
 
    }
}
OneEvent
Java(TM) 2 Platform Standard Edition 5.0
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
package ru.startandroid.p000111testing;
 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;
import android.view.View.OnClickListener;
/**
 * Created by F.Slowpoke on 03.04.2016.
 */
public class OneEvent extends Activity implements OnClickListener {
 
    TextView tvEventTitle, tvEventDate, tvEventTime;
    int id = 0;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.one_event);
    }
 
    @Override
    public void onClick(View v) {
    }
}
DB
Java(TM) 2 Platform Standard Edition 5.0
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
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
/**
 * Created by F.Slowpoke on 02.04.2016.
 */
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_TITLE = "title";
    public static final String COLUMN_DATE = "date";
    public static final String COLUMN_TIME = "time";
 
    private static final String DB_CREATE =
            "create table " + DB_TABLE + "(" +
                    COLUMN_ID + " integer primary key autoincrement, " +
                    COLUMN_TITLE + " text, " +
                    COLUMN_DATE + " text, " +
                    COLUMN_TIME + " 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, "_id DESC");
    }
 
    // добавить запись в DB_TABLE
    public void addRec(String tit, String dat, String tim) {
        ContentValues cv = new ContentValues();
        cv.put(COLUMN_TITLE, tit);
        cv.put(COLUMN_DATE, dat);
        cv.put(COLUMN_TIME, tim);
        mDB.insert(DB_TABLE, null, cv);
    }
 
    // удалить запись из DB_TABLE
    public void delRec(long id) {
        mDB.delete(DB_TABLE, COLUMN_ID + "=" + id, 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 < 3; i++) {
                cv.put(COLUMN_TITLE, "sometext " + i);
                cv.put(COLUMN_DATE, "sometext " + i);
                cv.put(COLUMN_TIME, "sometext " + i);
                db.insert(DB_TABLE, null, cv);
            }
        }
 
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        }
    }
}
Ответ: Огромное Вам спасибо, все получилось!
Вопрос: При нажатии на элемент ListView вывести новое Activity с информацией об этом элементе

Здравствуйте! Помогите пожалуйста! В общем есть список ListView с названиями кафе и ресторанов, надо сделать так чтобы при нажатии на название кафе выводилось новое Activity с информацией о самом кафе

Сейчас при нажатии на название кафе ничего не происходит, хотя Activity же я указал

Вот код:


Код Java(TM) 2 Platform Standard Edition 5.0
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
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
 
public class ActivityKafe extends ListActivity {
    String[] List = new String[] {
            "Кафе «Alligator Green»",
             "Кафе «Чайхона ресто»",
             "Кафе «Кён Бок Кун»",
             "Кафе «Furusato»",
             "Кафе «Силла»",
             "Кафе «Salon de Te»",
             "Пиццерия «New York Pizza»",
             "Кафе «Sushi Room»",
             "Кофейня «Adriano»",
             "Кафе «Центр Плова»",
             "Кафе-Бар «Одноклассники»",
             "Кафе-Бистро «Москва»",
             "Кафе «Dream Bar»",
             "Кафе «Сере»",
             "Кафе «Деревяшка»",
             "Кафе «Арзу Lounge»",
             "Кафе «Манты Бар»",
             "Кафе-Бар «Navigator»",
             "Кафе «Фаиза»",
             "Кафе «Дияр»",
             "Кафе «Ландау»",
             "Кофейня Coffee",
    }; 
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.kafe);
        
        
        
        setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, List));
    }
    
    public void onListItemClick(AdapterView<?> arg0, View arg1, int position, long id) {
        
        
        
        switch (Integer.parseInt(arg0.getTag().toString())) {
            case 0:
                Intent intent = new Intent(this, ActivityKafe1.class);
                startActivity(intent);
            break;
            case 1:
                Intent intent2 = new Intent(this, ActivityClub.class);
                startActivity(intent2);
            break;
              
        
        }
      }
    }
Ответ: а чему оно может быть равно? похоже я нуб
Вопрос: Передача строки из activity в класс non activity !

Здравствуйте дамы и господа. Очень нужна помощь.

public class Login_ac extends AppCompatActivity {

Button b_login;
Spinner sp_login;
EditText pass_login;
String item_user, name, pass;

String user1 = "Пользователь 1";
String user2 = "Пользователь 2";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login_ac);

b_login = (Button)findViewById(R.id.but_login);
pass_login = (EditText)findViewById(R.id.pass_login);



String[] user = {user1,user2};
sp_login = (Spinner)findViewById(R.id.user_login);
ArrayAdapter<String> adapter_user = new ArrayAdapter<String>(this, R.layout.row_login1, user);
adapter_user.setDropDownViewResource(R.layout.row_login2);
sp_login.setAdapter(adapter_user);
AdapterView.OnItemSelectedListener itemSelectedListener = new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

item_user = (String)parent.getItemAtPosition(position);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {

}
};
sp_login.setOnItemSelectedListener(itemSelectedListener);

}

public void OnClick_login(View view){
pass = pass_login.getText().toString();
if (item_user.equals("Пользователь 1") && pass.equals("0000")){

item_user="qqq";
name = item_user;

startActivity(new Intent(Login_ac.this,MainActivity.class));

}else {
b_login.setText("введена чушь");
}
}
}

В activity Login_ac выбираем пользователя спинером и пароль edittext'ом
Затем при нажатии кнопки входа переходим в MainActivity, где сразу происходит подключение к базе данных
через простой (не activity) класс ConnectionClass
Также при нажатии кнопки входа в activity Login_ac необходимо передать переменную String name в класс ConnectionClass
для того чтобы подключение к базе произошло под выбранным user1 или user2
Ответ: static String рулит, спасибо +1 (видимо я плохо учил мат.часть java)
ExFau$t также благодарю
Вопрос: Передача значения переменной Activity в другой класс

Есть активность:
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
public class Menu extends Activity {
 
    OnClickListener lt;
 
    EditText Day, Month, Year, BirthDay, BirthMonth, BirthYear;
 
    Button StartButton;
 
    
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
 
        setContentView(R.layout.activity_menu);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
 
        StartButton = (Button) findViewById(R.id.StartButton);
        
        Day = (EditText) findViewById(R.id.Day);
        BirthDay = (EditText) findViewById(R.id.BirthDay);
        Month = (EditText) findViewById(R.id.Month);
        BirthMonth = (EditText) findViewById(R.id.BirthMonth);
        Year = (EditText) findViewById(R.id.Year);
        BirthYear = (EditText) findViewById(R.id.BirthYear);
 
        lt = new OnClickListener() {
 
            @Override
            public void onClick(View v) {
                if (v.getId() == R.id.StartButton) {
 
                    Intent i= new Intent(Menu.this, MainActivity.class);
 
                    startActivity(i);
 
                }
            }
 
        };
        StartButton.setOnClickListener(lt);
 
    }
}


И вторая :
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
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(new GameView(this));
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);
        
        
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
 
    public void onFinish() {
 
    }
}

Как передать считанные значения с EditText`ов в первой активности в класс GameView(GameView extends View)?
Ответ: я просто подумал, что если человек тупо не читает что ему показывают, то бандл и интент для него будет просто вселенски сложно понять

а так, да, согласен, лучше через интент передавать - накидать туда putExtra() и все
Вопрос: Передача параметров с Activity в Fragment

Здравствуйте!
У меня не получается передать параметры с Activity в Fragment.
Я пытался сделать это следующим образом:

В Activity:
Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
Bundle bundle = new Bundle();
bundle.putString("data", "Data you want to send");
// Your fragment
MyFragment obj = new MyFragment();
obj.setArguments(bundle);
в Fragment'е onCreateView:
Java(TM) 2 Platform Standard Edition 5.0
1
String param = this.getArguments().getString("data");
Выдает ошибку NullPointerException на этой строке.

Также пробывал вариант:
Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
 if(!this.getArguments().isEmpty()) {
            Toast.makeText(getActivity(), this.getArguments().getString("data").toString()
                    , Toast.LENGTH_LONG).show();
        }
Ошибка не вылетает, но и параметр не возвращается.
Ответ: olorin3000, вот так предлагают поступать на официальном сайте -
Вопрос: Передача данных между Activity

Доброго времени суток, господа.

Такой вопрос: с точки зрения ООП програмирования и программирования в целом, каким образом практичнее и правильнее передавать данные?

Из основных способов в Android: intent, а будет ли правильным передача через статический класс?
Ответ: HanDi, привет!
Недавно создавал подобную тему: .
Очень не люблю, когда данные передают через статические классы. Запутаться можно, откуда берутся данные, в каких местах заполняются. Да и память отнимают.
Вопрос: Ошибка при переходе на новое Activity

Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь?

При переходе на новое активити программа выдает ошибку и вылетает. Я начал эксперементировать с методами жизненного цикла активити (onStop, onRestart и т.д.) и в итоге наколдовал что не правильное... Только не могу понять, где ошибка, подскажите, пожалуйста!

Вот код:
Код Java(TM) 2 Platform Standard Edition 5.0
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
public class list extends Activity
{
    final LinearLayout ll = (LinearLayout) findViewById(R.id.ll);
    final LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    final int pg = Gravity.CENTER_HORIZONTAL;
    final TextView password = new TextView(this);
    final String[] j = new String[50];
    int i = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.list);
        for (int ii = 0; ii <= 50; ++ii) {
            if (j[ii].equals(null)) {
                j[ii] = getIntent().getStringExtra("pass");
                password.setText(j[ii]);
                ll.addView(password, lp);
                i = ii;
                break;
            }
            else {
                password.setText(j[ii]);
                ll.addView(password, lp);
            }
        }
    }
    protected void onStop(Bundle savedInstanceState) {
        j[i] = getIntent().getStringExtra("pass");
    }
 
 
}
ЗАРАНЕЕ БЛАГОДАРЮ!!!!!!!!!
Ответ: Спасибо, все заработало!
Вопрос: Переключение между Activity путём нажатия кнопки

работаю в eclips. создал два файла, в папку res\layout\activity_second.xml и activity_second2.xml потом классы посредством кторых будет отражено новое Activity SecondActivity.java и SecondActivity2.java

есть переключение между Activity путём нажатия кнопки созданы нужные классы и все прочее, прописан манифест в итоге имеем активити 1 с двумя кнопками на активити 2 и активити 3 ... но при нажатии на любую он перекидывает на активити 2(SecondActivity). Независимо от нажатия на кнопку 1 или кнопку 2 он открывает тока одно и тоже окно (SecondActivity). вот код MainActivity.java
Java(TM) 2 Platform Standard Edition 5.0
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
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
 
    Button swith = (Button)findViewById(R.id.button1);
    Button swith3 = (Button)findViewById(R.id.button3);
 
    swith.setOnClickListener(new OnClickListener()
 
                    {
                    @Override
        public void onClick(View v) {
 
            startActivity(new Intent(MainActivity.this, SecondActivity.class)); 
                                       }
    });
 
 
    swith3.setOnClickListener(new View.OnClickListener() {    
         @Override
         public void onClick(View v) {
             startActivity(new Intent(MainActivity.this, SecondActivity2.class));
         }
     });    
}
 
 
 
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
 
}





Может быть в манифесте напортачил???

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
<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="21" />
 
<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
 
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="SecondActivity"
        android:label="@string/app_name"/>
    <activity
        android:name="SecondActivity2"
        android:label="@string/app_name"/>
 
</application>
файлы навсякий случай прикреплю
Ответ: консультация. у меня список берет информацию из папки raw при создании второго списка хотел ему показать брать файлы из другой папки.. к примеру waw но он ругается на меня... Description Resource Path Location Type invalid resource directory name waw /carcar/res line 1 Android AAPT Problem Почему ?

Добавлено через 15 минут
Сообщение от aivengos
консультация. у меня список берет информацию из папки raw при создании второго списка хотел ему показать брать файлы из другой папки.. к примеру waw но он ругается на меня... Description Resource Path Location Type invalid resource directory name waw /carcar/res line 1 Android AAPT Problem Почему ?
разобрался..