Урок 42. Список - ListView
Re: Урок 42. Список - ListView
в базу данных, конечно же.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 42. Список - ListView
Спасибо, значит SimpleCursorAdapter использовать?
Re: Урок 42. Список - ListView
а для записи в бд это не важно, т.к. адаптер использутся для показа списка на экране (т.е если наоборот, ты бешешь данные из таблиц, то нужно использовать SimpleCursorAdapter, например) .
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 42. Список - ListView
В общем делаю как в уроке. Вылазиит ошибка http://i016.radikal.ru/1309/9a/dd8c39b568d0.png
Re: Урок 42. Список - ListView
Radzhab писал(а):В общем делаю как в уроке. Вылазиит ошибка http://i016.radikal.ru/1309/9a/dd8c39b568d0.png
У меня указаны необходимых классы для проекта, проверь может чего не хватает:
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
А так создается адаптер
// создаем адаптер
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, items);
Надеюсь мои комментарии новичка помогут.
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
Re: Урок 42. Список - ListView
Увы. Не помогло. пишет Gradle: cannot find symbol constructor ArrayAdapter(<anonymous android.view.View.OnClickListener>,int,java.lang.String[])
Re: Урок 42. Список - ListView
this должно ссылаться на контекст, у тебя скорее всего ссылается на что то иное.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 42. Список - ListView
а в IDEA не просматривает(И внутри находим используемый нами simple_list_item_1
Двойной клик на него и смотрим содержимое:
говорит что не правильный формат xml и не найден тег начала, отображает чушь какую-то
возможно не распаковывает из jar
а это проблемма, т.к. нет примера для создания своего элемента.... как бы его просмотреть?
Последний раз редактировалось Isaev 18 окт 2013, 09:13, всего редактировалось 1 раз.
Re: Урок 42. Список - ListView
все прекрасно делают свои строки для листвью без просмотра этого злополучного файла
а чтоб его посмотреть - нужно скачать исходники. Сделать это можно в окне SDK manager
почему ошибка появляется - не знаю
а чтоб его посмотреть - нужно скачать исходники. Сделать это можно в окне SDK manager
почему ошибка появляется - не знаю
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 42. Список - ListView
Foenix, хорошо, а где тогда можно посмотреть какие вообще для данного класса возможны свойства?
Re: Урок 42. Список - ListView
У меня для eclipce эта проблема решилась следующим образом:Isaev писал(а):а в IDEA не просматривает(И внутри находим используемый нами simple_list_item_1
Двойной клик на него и смотрим содержимое:
говорит что не правильный формат xml и не найден тег начала, отображает чушь какую-то
возможно не распаковывает из jar
а это проблемма, т.к. нет примера для создания своего элемента.... как бы его просмотреть?
Чтобы открывать шаблоны layout и смотреть xml
Window->General->Editors->File Associations ставим для *.xml двоичный редактор как Default
Попробуй, поискать аналогичные настройки на IDEA.
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
Re: Урок 42. Список - ListView
все на http://developer.android.com/develop/index.html если я правильно поняла вопрос.Isaev писал(а):Foenix, хорошо, а где тогда можно посмотреть какие вообще для данного класса возможны свойства?
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 42. Список - ListView
trew, в настройках так ничего и не нашёл (хотя их много, мог и не заметить что-то)
но выход тут есть другой, там в дереве проекта в External Libraries помимо android.jar рядом есть развернутый вариант res/layout/... оттуда всё просматривается исправно
но выход тут есть другой, там в дереве проекта в External Libraries помимо android.jar рядом есть развернутый вариант res/layout/... оттуда всё просматривается исправно
Re: Урок 42. Список - ListView
Есть такой вот ListView
LinearLayout llMain;
ListView mConversationView;
...
llMain.removeAllViews();
LinearLayout.LayoutParams TermParams1 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
mConversationArrayAdapter = new ArrayAdapter<String>(this, R.layout.message);
mConversationView.setAdapter(mConversationArrayAdapter);
mConversationView.setLayoutParams(TermParams1);
llMain.addView(mConversationView);
mConversationArrayAdapter.add("TEXT" );
Как динамически изменить цвет выводимого TEXT не трогая исходный R.layout.message ?
===========
Сам спрашивал.. сам и отвечаю )))
Итак, пришлось написать свой адаптер и уже в нем, в getVeiw можно делать с текстом и фоном что хочешь.
LinearLayout llMain;
ListView mConversationView;
...
llMain.removeAllViews();
LinearLayout.LayoutParams TermParams1 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
mConversationArrayAdapter = new ArrayAdapter<String>(this, R.layout.message);
mConversationView.setAdapter(mConversationArrayAdapter);
mConversationView.setLayoutParams(TermParams1);
llMain.addView(mConversationView);
mConversationArrayAdapter.add("TEXT" );
Как динамически изменить цвет выводимого TEXT не трогая исходный R.layout.message ?
===========
Сам спрашивал.. сам и отвечаю )))
Итак, пришлось написать свой адаптер и уже в нем, в getVeiw можно делать с текстом и фоном что хочешь.
Последний раз редактировалось Sharp 18 ноя 2013, 13:09, всего редактировалось 1 раз.
Re: Урок 42. Список - ListView
В текстовой версии урока в main.xml в TextView есть строка android:text="@string/hello", а надо ведь android:text="@string/hello_world", иначе у копипастов(меня) не запустится. 
Re: Урок 42. Список - ListView
Подскажите пожалуйста,как взять массив данных из txt файла,находящегося на SD карте, и поместить его в List view ?
Re: Урок 42. Список - ListView
Как загружать данные, рассказано в уроке 75.blinov писал(а):Подскажите пожалуйста,как взять массив данных из txt файла,находящегося на SD карте, и поместить его в List view ?
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
Re: Урок 42. Список - ListView
Здравствуйте. Мне нужно создать динамический список, то есть при нажатии на кнопку, чтоб в список добавлялся новый элемент. Я сделала, но проблема в том, что каждый новый элемент добавляется в одну и ту же строку списка, а ранее введенные данные не видны. Где ошибка?
Код: Выделить всё
ListView listView = (ListView) findViewById(R.id.listpoints);
final ArrayList<String> listpoint = new ArrayList<String>();
final ArrayAdapter<String> adapter;
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, listpoint);
listView.setAdapter(adapter);
switch (v.getId()) {
case R.id.btnok:
listpoint.add(enterpoints.getText().toString());
adapter.notifyDataSetChanged();
enterpoints.setText("");
break;
Re: Урок 42. Список - ListView
можно увидеть весь код. Или хотя бы скажите, код приведенный выше выполняется последовательно внутри одной функции или это два несвязных куска?Nastasia писал(а):Здравствуйте. Мне нужно создать динамический список, то есть при нажатии на кнопку, чтоб в список добавлялся новый элемент. Я сделала, но проблема в том, что каждый новый элемент добавляется в одну и ту же строку списка, а ранее введенные данные не видны. Где ошибка?
Re: Урок 42. Список - ListView
Весь код просто длинный, и там много лишнего, не относящегося к вопросу.
Код: Выделить всё
package com.example.streliba;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.os.SystemClock;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Chronometer;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
public class BeginShooting extends Activity implements OnClickListener {
final String LOG_TAG = "myLogs";
Button btnAdd, btnRead, butStart, butStop, butPause;
EditText enterpoints, datat, namee;
DBHelper dbHelper;
int i=1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.beginshooting);
btnAdd = (Button) findViewById(R.id.btnok);
btnAdd.setOnClickListener(this);
btnRead = (Button) findViewById(R.id.btnRead);
btnRead.setOnClickListener(this);
butStart = (Button) findViewById(R.id.buttonstart);
butStart.setOnClickListener(this);
butPause = (Button) findViewById(R.id.buttonpause);
butPause.setOnClickListener(this);
butStop = (Button) findViewById(R.id.buttonstop);
butStop.setOnClickListener(this);
enterpoints = (EditText) findViewById(R.id.enterpoints);
namee = (EditText) findViewById(R.id.name);
datat = (EditText) findViewById(R.id.data);
dbHelper = new DBHelper(this);
String curDate = new SimpleDateFormat("dd.MM.yyyy").format(Calendar.getInstance().getTime());
datat.setText(curDate);
Chronometer chronometer = (Chronometer) findViewById(R.id.chronometer);
chronometer.setText("00:00:00");
}
@Override
public void onClick(View v) {
ListView listView = (ListView) findViewById(R.id.listpoints);
// Создаём пустой массив для хранения очков
final ArrayList<String> listpoint = new ArrayList<String>();
// Создаём адаптер ArrayAdapter, чтобы привязать массив к ListView
final ArrayAdapter<String> adapter;
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, listpoint);
// Привяжем массив через адаптер к ListView
listView.setAdapter(adapter);
// создаем объект для данных
ContentValues cv = new ContentValues();
// получаем данные из полей ввода
String points = enterpoints.getText().toString();
String name = namee.getText().toString();
String elapsedTime = "00:00:00";
// подключаемся к БД
SQLiteDatabase db = dbHelper.getWritableDatabase();
String curDate = new SimpleDateFormat("dd.MM.yyyy").format(Calendar.getInstance().getTime());
Chronometer chronometer = (Chronometer) findViewById(R.id.chronometer);
String time = (String) chronometer.getText();
switch (v.getId()) {
case R.id.buttonstart:
chronometer.setBase(SystemClock.elapsedRealtime());
chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
CharSequence text = chronometer.getText();
if (text.length() == 5) {
chronometer.setText("00:"+text);
} else if (text.length() == 7) {
chronometer.setText("0"+text);
}
}
});
chronometer.start();
break;
case R.id.buttonpause:
String pauseq=(String) butPause.getText();
if(pauseq.equals("Pause")){
chronometer.stop();
butPause.setText("Resume");
}else{
elapsedTime = (String) chronometer.getText();
int stoppedMilliseconds=0;
String array[]=elapsedTime.split(":");
stoppedMilliseconds =Integer.parseInt(array[0])*60*60*1000+Integer.parseInt(array[1])*60*1000+Integer.parseInt(array[2])*1000;
chronometer.setBase(SystemClock.elapsedRealtime()-stoppedMilliseconds);
chronometer.start();
butPause.setText("Pause");
}
break;
case R.id.buttonstop:
chronometer.stop();
break;
case R.id.btnok:
if(points.equals("")){
Toast.makeText(this, "Введите результат", Toast.LENGTH_LONG).show();
}else{
if(name.equals("")){
Toast.makeText(this, "Введите имя", Toast.LENGTH_LONG).show();
} else if(time=="00:00:00")
{
Toast.makeText(this, "Включите таймер", Toast.LENGTH_LONG).show();
}
Log.d(LOG_TAG, "--- Insert in mytable: ---");
cv.put("points", points);
cv.put("data", curDate);
cv.put("time", time);
cv.put("name", name);
// вставляем запись и получаем ее ID
long rowID = db.insert("mytable", null, cv);
Log.d(LOG_TAG, "row inserted, ID = " + rowID);
listpoint.add( i+++". "+enterpoints.getText().toString());
adapter.notifyDataSetChanged();
enterpoints.setText("");
}
break;
case R.id.btndel:
break;
case R.id.btnRead:
Log.d(LOG_TAG, "--- Rows in mytable: ---");
// делаем запрос всех данных из таблицы mytable, получаем Cursor
Cursor c = db.query("mytable", null, null, null, null, null, null);
// ставим позицию курсора на первую строку выборки
// если в выборке нет строк, вернется false
if (c.moveToFirst()) {
// определяем номера столбцов по имени в выборке
int idColIndex = c.getColumnIndex("id");
int pointsColIndex = c.getColumnIndex("points");
int dataColIndex = c.getColumnIndex("data");
int timeColIndex = c.getColumnIndex("time");
int nameColIndex = c.getColumnIndex("name");
do {
// получаем значения по номерам столбцов и пишем все в лог
Log.d(LOG_TAG,
"ID = " + c.getInt(idColIndex) +
", points = " + c.getString(pointsColIndex) +
", data = " + c.getString(dataColIndex)+
", time = "+c.getString(timeColIndex)+
", name = "+c.getString(nameColIndex));
// переход на следующую строку
// а если следующей нет (текущая - последняя), то false - выходим из цикла
} while (c.moveToNext());
} else
Log.d(LOG_TAG, "0 rows");
c.close();
break;
}
// закрываем подключение к БД
dbHelper.close();
}
class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context) {
// конструктор суперкласса
super(context, "myDB", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.d(LOG_TAG, "--- onCreate database ---");
// создаем таблицу с полями
db.execSQL("create table mytable ("
+ "id integer primary key autoincrement,"
+ "points text,"
+ "data text,"
+ "time text,"
+ "name text"+");");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
}