Спасибо! Теперь я разобрался.eternal_ego писал(а):Так ведь item-то у вас каждый раз разный, соответственно переменные каждый раз инициализируются именно потому, что соответствуют новым объектам.
Урок 41. Используем LayoutInflater для создания списка
Re: Урок 41. Используем LayoutInflater для создания списка
-
- Сообщения: 59
- Зарегистрирован: 02 фев 2013, 00:03
Re: Урок 41. Используем LayoutInflater для создания списка
Всем привет! Подскажите как такое сделать с ListView мне нужен список как например в настройках андроида, чтобы первая строка была одним шрифтом а строчки ниже(комментарий к параметру) другого размера)))
Re: Урок 41. Используем LayoutInflater для создания списка
Заюзать в качестве layout ресурса для итемов не android.R.layout.simple_list_item_1, а android.R.layout.simple_list_item_2 (там 2 поля, одно - заголовок, второе - комментарий).
-
- Сообщения: 59
- Зарегистрирован: 02 фев 2013, 00:03
Re: Урок 41. Используем LayoutInflater для создания списка
Спасибо, попробую)))
Re: Урок 41. Используем LayoutInflater для создания списка
C LinearLayout все получается
Если везде (в разметке и в коде) заменить LinearLayout на ScrollView или ListView - вылетает при попытке добавить итем.
Почему?
Если везде (в разметке и в коде) заменить LinearLayout на ScrollView или ListView - вылетает при попытке добавить итем.
Почему?
Re: Урок 41. Используем LayoutInflater для создания списка
А в логах что пишет?
Re: Урок 41. Используем LayoutInflater для создания списка
dens
по какому слову фильтровать? там же простыня валится
по какому слову фильтровать? там же простыня валится
Re: Урок 41. Используем LayoutInflater для создания списка
Если в Eclipse, то справа от edit'a для ввода всяких слов есть селектор выпадающий, выбери там error, будут только ошибки. Ну и смотря простыню, что есть.
Re: Урок 41. Используем LayoutInflater для создания списка
Я добавил в Activity ScrollView, а в него уже включил ListView, к ктоторому добавляю item'ы. Все работает.djdance писал(а):C LinearLayout все получается
Если везде (в разметке и в коде) заменить LinearLayout на ScrollView или ListView - вылетает при попытке добавить итем.
Почему?
Пытаюсь разобраться как обрабатывать вызов Context View - как узнать id нажатого элемента?
Re: Урок 41. Используем LayoutInflater для создания списка
по нажатию - листенер.
а если отдельно от события нажатия, то с поиском id все по-разному (вы их динамически генерите?)
например чекбокс ищется простым перебором чайлдов
а вот с текстедитом придется повозиться чуть ли не от корневого элемента.
если надо, найду пример по этому абзацу.
а если отдельно от события нажатия, то с поиском id все по-разному (вы их динамически генерите?)
например чекбокс ищется простым перебором чайлдов
а вот с текстедитом придется повозиться чуть ли не от корневого элемента.
если надо, найду пример по этому абзацу.
Re: Урок 41. Используем LayoutInflater для создания списка
Может в уроке стоит упомянуть, что метод findViewById вызывается у объекта View? Ранее (в предыдущих уроках) вызывался метод класса Activity. Когда делал урок, не копипастил, забыл указать объект item при вызове - долго думал, почему возвращается null
Re: Урок 41. Используем LayoutInflater для создания списка
У меня отображается только 1-й элемент массива,хотя код аналогичный.Помогите разобраться в чем дело.
Код: Выделить всё
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
</LinearLayout>
Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/testText"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="This is test text"
>
</TextView>
Код: Выделить всё
package com.example.linflater;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.TextView;
public class LinflaterActivity extends Activity {
String mass[] = {"1","2","3","4","5","6","7","8","9","10"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_linflater);
LinearLayout ln = (LinearLayout) findViewById(R.id.LinearLayout1);
LayoutInflater LI1 = getLayoutInflater();
for(int i=0;i<10;i++){
View view = LI1.inflate(R.layout.test, ln,false);
TextView tv1 = (TextView) view.findViewById(R.id.testText);
tv1.setText(mass[i]);
ln.addView(view);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_linflater, menu);
return true;
}
}
Последний раз редактировалось Don11 07 апр 2013, 21:44, всего редактировалось 1 раз.
Re: Урок 41. Используем LayoutInflater для создания списка
бегло: опечатка в String mass[] = {"1","2","3","4","5","6",7","8","9","10"};
Re: Урок 41. Используем LayoutInflater для создания списка
Высоту TextView (который @+id/testText) сделайте wrap_content.
Re: Урок 41. Используем LayoutInflater для создания списка
Точно!Спасибо.damager82 писал(а):Высоту TextView (который @+id/testText) сделайте wrap_content.
Re: Урок 41. Используем LayoutInflater для создания списка
Здравствуйте. Мне нужно сделать экран, на котором, грубо говоря, будет TextVeiw, ниже ещё TextVeiw, а ниже хочу сделать, что-то типа ListView (чтоб был список, количество строк заранее известно, и чтоб строки были разделены линиями). Пробовал делать TextVeiw, TextVeiw и ListView, но ListView показывает только первую строку, без прокрутки, хотя она и не нужна. Так вот прошу совета, как лучше сделать обычный список, но с разделяющими линиями как в ListView ? Нажатия в этом списке не нужны, список нужен только для наглядности информации, для читабельности
Re: Урок 41. Используем LayoutInflater для создания списка
Нашёл решение вставить TextView
Код: Выделить всё
<TextView
android:layout_width="fill_parent"
android:layout_height="1px"
android:background="#DADADA" />
Re: Урок 41. Используем LayoutInflater для создания списка
В этом уроке нет list. к чему прикручивать setOnItemClickListener ?rezak90 писал(а):romanzi писал(а):Как узнать по какому элементу списка кликнули?Код: Выделить всё
list.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView parentView, View childView, int position, long id) { //position - позиция в списке //id - айди привязанных данных к адаптеру } });
Re: Урок 41. Используем LayoutInflater для создания списка
Без адаптера и listView это будет напряжненько, да и суть урока, насколько я понимаю - разобраться, как работает LayoutInflater . Как вариант для этого урока - перед добавлением на каждую сгенерированную вьюшку вешать обработчик setOnClickListenergrecd писал(а):В этом уроке нет list. к чему прикручивать setOnItemClickListener ?rezak90 писал(а):romanzi писал(а):Как узнать по какому элементу списка кликнули?Код: Выделить всё
list.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView parentView, View childView, int position, long id) { //position - позиция в списке //id - айди привязанных данных к адаптеру } });
Код: Выделить всё
item.setBackgroundColor(colors[i % 2]);
item.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
TextView tvName = (TextView) v.findViewById(R.id.tvName);
TextView tvPosition = (TextView) v.findViewById(R.id.tvPosition);
TextView tvSalary = (TextView) v.findViewById(R.id.tvSalary);
// -- делаем что-нибудь
}
});
linLayout.addView(item);
-
- Сообщения: 22
- Зарегистрирован: 17 апр 2013, 17:59
Re: Урок 41. Используем LayoutInflater для создания списка
Допустим я хочу изменить кому-то зарплату в этом списке, как получить доступ к нужной строке?
TextView tvSalary = (TextView) item.findViewById(R.id.tvSalary);
мне даст тока первую как я понимаю.
TextView tvSalary = (TextView) item.findViewById(R.id.tvSalary);
мне даст тока первую как я понимаю.