Есть обработчик нажатия на элемент, посредством которого происходит переход на новое Activity
В новом Activity есть toolbar, в котором должен отображаться текст непосредственно полученный из нажатого элемента.
Есть кое-какой набросок, созданный при помощи Ютба, но работает не так как нужно. Т.е. суть в том, что есть список фильмов, - при нажатии на один из них открывается новое активити, содержащее инфу о фильме.
Главное активити :
public class HomeworkActivity extends AppCompatActivity {
final List<ToDoItems> list = new ArrayList<>(Arrays.asList(
new ToDoItems ("Seven"),
new ToDoItems ("Sleepy Hollow"),
new ToDoItems ("House of Wax"),
new ToDoItems ("From Hell")
));
ToDoAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.hw);
adapter = new ToDoAdapter(this,list);
final ListView listView = (ListView) findViewById(R.id.Item);
listView.setAdapter(adapter);
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
Toolbar toolbar=(Toolbar) findViewById(R.id.main_toolbar);
toolbar.setTitle("My Film List");
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(HomeworkActivity.this,DescriptionActivity.class);
intent.putExtra("FilmName",listView.getItemAtPosition(position).toString());
startActivity(intent);
}
});
Вызываемое активити:
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.widget.EditText;
import android.widget.ImageView;
public class DescriptionActivity extends AppCompatActivity {
ImageView image;
Toolbar d_toolbar;
EditText date;
EditText ganre;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_description);
image = (ImageView) findViewById(R.id.image);
d_toolbar= (Toolbar) findViewById(R.id.toolbar);
date = (EditText) findViewById(R.id.date);
ganre = (EditText) findViewById(R.id.ganre);
String film= getIntent().getStringExtra("FilmName");
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
d_toolbar.setTitle(bundle.getString(film));
if (d_toolbar.getTitle().toString().equalsIgnoreCase("Seven")) {
image.setImageDrawable(ContextCompat.getDrawable(DescriptionActivity.this,R.drawable.seven));
date.setText("2000");
ganre.setText("Thriller,Detective");
}
else if (d_toolbar.getTitle().toString().equalsIgnoreCase("Sleepy hollow")) {
image.setImageDrawable(ContextCompat.getDrawable(DescriptionActivity.this,R.drawable.sleepy_holl));
date.setText("2000");
ganre.setText("Thriller,Horror");
}
else if (d_toolbar.getTitle().toString().equalsIgnoreCase("House of wax")) {
image.setImageDrawable(ContextCompat.getDrawable(DescriptionActivity.this,R.drawable.h_of_wax));
date.setText("2000");
ganre.setText("Horror");
}
else if (d_toolbar.getTitle().toString().equalsIgnoreCase("From hell")) {
image.setImageDrawable(ContextCompat.getDrawable(DescriptionActivity.this,R.drawable.from_hell));
date.setText("2000");
ganre.setText("Thriller,Horror");
}
}
}
}
У вас много лишнего. Сделайте, например, так:
Intent intent = new Intent(HomeworkActivity.this, DescriptionActivity.class);
intent.putExtra("FilmName", list.get(position));
startActivity(intent);
а потом так:
String filmName = getIntent().getStringExtra("FilmName");
d_toolbar.setTitle(filmName);
Ну и всё это надо в БД сложить, меж активити передавать ID записи, а не данные, ничего не хардкодить, пользовать switch
вместо if else
и правильно именовать переменные.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие есть способы изменения Java-байткода во время/после компиляции? Меня интересует возможность за счёт аннотаций модифицировать классы,...
Есть объектУ него есть несколько объектов, которые содержат в себе переменные типа List<String>
Добрый день! Нужно выбрать сразу несколько записей из select, и отправить запрос