Спасибо!rezak90 писал(а):так в чём проблема? то же самое что я описал сообщеним выше только результат не возвращаем в предыдущее активити, а создаём новое активити со списком который добавили в избранное. Опишу подробней сразу:
существует список ArrayList<String> primaryList; в котором содержатся данные из основного ListView, далее переходим в следующиее активти WebView и добавляем ссылки в "избранное" в новый список ArrayList<String> bookmark; и потом отображаем их в новом активти в списке ListView.
Урок 42. Список - ListView
Re: Урок 42. Список - ListView
Re: Урок 42. Список - ListView
Что то я совсем запутался, не пойму что писать в onClick.rezak90 писал(а):так в чём проблема? то же самое что я описал сообщеним выше только результат не возвращаем в предыдущее активити, а создаём новое активити со списком который добавили в избранное. Опишу подробней сразу:
существует список ArrayList<String> primaryList; в котором содержатся данные из основного ListView, далее переходим в следующиее активти WebView и добавляем ссылки в "избранное" в новый список ArrayList<String> bookmark; и потом отображаем их в новом активти в списке ListView.
Код: Выделить всё
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.widget.Button;
public class ActivityTwo extends Activity implements OnClickListener {
Button btnAdd;
final String LOG_TAG = "myLogs";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.two);
//находим кнопку
btnAdd = (Button) findViewById (R.id.btnAdd);
btnAdd.setOnClickListener(this);
Bundle bundle = getIntent().getExtras();
String itemname = "n" + bundle.getString("defStrID"); //получаем строку и формируем имя ресурса
Context context = getBaseContext(); //получаем контекст
//читаем текстовый файл из ресурсов по имени
String text = readRawTextFile(context, getResources().getIdentifier(itemname, "raw", "ru.sotnik.sample"));
WebView myWebView = (WebView) findViewById(R.id.webView);
String summary = "<html><body>" + text + "</body></html>";
myWebView.loadDataWithBaseURL("x-data://base",summary, "text/html", "utf-8", null); //загружаем текст в webview
}
public static String readRawTextFile(Context ctx, int resId) //читаем текст из raw
{
InputStream inputStream = ctx.getResources().openRawResource(resId);
InputStreamReader inputreader = new InputStreamReader(inputStream);
BufferedReader buffreader = new BufferedReader(inputreader);
String line;
StringBuilder text = new StringBuilder();
try {
while (( line = buffreader.readLine()) != null) {
text.append(line);
text.append('\n');
}
} catch (IOException e) {
return null;
}
return text.toString();
}
public void onClick(View v){
}
}
Re: Урок 42. Список - ListView
А вот теперь я вас не понял. Где же список? где добавление ссылки в избранное?
В этом куске кода только загрузка данных в WebView.
В этом куске кода только загрузка данных в WebView.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 42. Список - ListView
В первом активити список вот так создал?rezak90 писал(а):А вот теперь я вас не понял. Где же список? где добавление ссылки в избранное?
В этом куске кода только загрузка данных в WebView.
Код: Выделить всё
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class secondActivity extends Activity {
ListView lvMain;
String[] names;
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
// находим сисок
lvMain = (ListView) findViewById(R.id.lvMain);
// создаем адаптер
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.names,
android.R.layout.simple_list_item_1);
// присваиваем адаптер списку
lvMain.setAdapter(adapter);
// получаем массив из файла ресурсов
names = getResources().getStringArray(R.array.names);
// обработчик нажатий
lvMain.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id)
{
//Позиция элемента, по которому щелкнули
String itemname = new Integer(position).toString();
Intent intent = new Intent();
intent.setClass(secondActivity.this, ActivityTwo.class);
Bundle b = new Bundle();
//defStrID содержит строку, которую отправим через itemname в другое Activity
b.putString("defStrID", itemname);
intent.putExtras(b);
//запускаем Intent
startActivity(intent);
}
});
//обработчик прокрутки
lvMain.setOnScrollListener(new OnScrollListener() {
public void onScrollStateChanged(AbsListView view, int scrollState){
}
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount){
}
});
}
}
Re: Урок 42. Список - ListView
насколько я понял вы не можете получить ссылку на которую нажали с webview?
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 42. Список - ListView
Я пробовал делать так: по нажатию на кнопку btnAdd возвращался порядковый номер пункта в спискеrezak90 писал(а):насколько я понял вы не можете получить ссылку на которую нажали с webview?
public void onClick(View v){
Bundle b = getIntent().getExtras();
b.getString("defStrID");
}
А дальше как туплю.
Это мое первое приложение решил сделать для закрепления первых 50 пройденных уроков, но наверное надо читать дальше.
Re: Урок 42. Список - ListView
"моя-твоя не понимать"
вы по клику на списке поулчаете айди ячейки в списке, далее передаёте её в следующее активити, что это даёт? и что с этим айди должно дальше происходить?
вы по клику на списке поулчаете айди ячейки в списке, далее передаёте её в следующее активити, что это даёт? и что с этим айди должно дальше происходить?
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 42. Список - ListView
по клику в основном списке открывается webView далееrezak90 писал(а):"моя-твоя не понимать"
вы по клику на списке поулчаете айди ячейки в списке, далее передаёте её в следующее активити, что это даёт? и что с этим айди должно дальше происходить?
String itemname = "n" + bundle.getString("defStrID"); //получаем строку и формируем имя ресурса
открывается текстовый файл в webView (в ресурсах я их сохранил с именами n0.txt, n1.txt и т.д.)
теперь по нажатию кнопки btnAdd ссылка на этот текстовый файл должна сохранится в новом списке "избранное" а как это сделать я так и не пойму.
Re: Урок 42. Список - ListView
у вас обработчике public void onItemClick(AdapterView<?> parent, View view, int position, long id) id - это запись в адаптере, в данном случае из R.array.names , в него внесли изменения в другой активити, и по возврату в основной активити следует обновить адаптер notifyDatasetChanger().
Имхо: для таких вещей следует юзать simplecursoradapter. Но думаю вы до него не дошли, а выше описанная мною схема вполне подойдёт для начала.
Имхо: для таких вещей следует юзать simplecursoradapter. Но думаю вы до него не дошли, а выше описанная мною схема вполне подойдёт для начала.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 42. Список - ListView
Не могу открыть android.jar/res.layout/simple_list_item_1.xml
"Android XML Editor cannot process this input."
"Android XML Editor cannot process this input."
Re: Урок 42. Список - ListView
Это происходит потому что в пакете jar все ресурсы xml представлены не в текстовом виде, а в двоичном, который не понимает стандартный XML Editor.
Исходник в текстовом виде можно посмотреть в <android-sdk>/platforms/android-?/data/res/layout/simple_list_item_1.xml (где <android-sdk> - папка, где у вас находится SDK Android, вместо вопроса номер платформы).
Исходник в текстовом виде можно посмотреть в <android-sdk>/platforms/android-?/data/res/layout/simple_list_item_1.xml (где <android-sdk> - папка, где у вас находится SDK Android, вместо вопроса номер платформы).
Re: Урок 42. Список - ListView
Спасибо!
Re: Урок 42. Список - ListView
Почему он мне пишет такое?
// создаем адаптер
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.my_list_item, names);
Ошибка: my_list_item cannot be resolved or is not a field
Файл в res\layout my_list_item.xml есть.
В R.java создалось:
public static final class layout {
public static final int main=0x7f030000;
public static final int my_list_item=0x7f030001;
Помогите плиз
// создаем адаптер
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.my_list_item, names);
Ошибка: my_list_item cannot be resolved or is not a field
Файл в res\layout my_list_item.xml есть.
В R.java создалось:
public static final class layout {
public static final int main=0x7f030000;
public static final int my_list_item=0x7f030001;
Помогите плиз
Re: Урок 42. Список - ListView
android.R - это ресурсы системы, естественно что там нет вашего my_list_item
Ваши ресурсы это R.layout.my_list_item
ЗЫ и проследите, чтобы android.R не прописалось в импорте, если пропишется - удалите этот импорт, иначе R.layout.my_list_item также будет искать в системных ресурсах.
Ваши ресурсы это R.layout.my_list_item
ЗЫ и проследите, чтобы android.R не прописалось в импорте, если пропишется - удалите этот импорт, иначе R.layout.my_list_item также будет искать в системных ресурсах.
Re: Урок 42. Список - ListView
Вот она, невнимательность
Спасибо.
Спасибо.
-
- Сообщения: 5
- Зарегистрирован: 15 ноя 2012, 07:33
Re: Урок 42. Список - ListView
Есть вопрос, нужно чтоб список появлялся по нажатию кнопки. ArrayAdapter<...> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, ...) работает в событии создания формы (onCreate), а если это добро прописать в своем классе и внутри своей функции, но она злостно ругается:( говорит The constructor ArrayAdapter<String>(Connect.MyTask, int, String) is undefined. Перепробовал различные реализации контекста, пока результата нет((( заранее спасибо за помощь
-
- Сообщения: 5
- Зарегистрирован: 15 ноя 2012, 07:33
Re: Урок 42. Список - ListView
Разобрался сам путем проб и ошибок, если кому надо могу рассказать
Re: Урок 42. Список - ListView
Конечно напишите, пригодится на будущееpalachsuper писал(а):Разобрался сам путем проб и ошибок, если кому надо могу рассказать
-
- Сообщения: 5
- Зарегистрирован: 15 ноя 2012, 07:33
Re: Урок 42. Список - ListView
Проблема состояла в том, что список выводился вообще в отдельном потоке AsynkTaska'а, при этом поток вызывал функцию, содержащую вывод списка доступных WiFi-сетей после сканирования.
Решена была слишком уж тривиально: ArrayAdapter<MSR> adapter = new ArrayAdapter<MSR>(Connect.this, android.R.layout.simple_list_item_1, resultMSR);
где Connect - имя класса активити - вполне просто и понятно, а я че только не перепробовал, и this и class.activity и все что только можно
MSR - наследник класса ScanResult,
resultMSR - результат сканирования сети.
Наследника класса пришлось делать по причине наличия избыточной информации о сети именно для вывода в список. А так чуть подредактировал функцию вывода toString() и все, получил SSID сети в массив.
Решена была слишком уж тривиально: ArrayAdapter<MSR> adapter = new ArrayAdapter<MSR>(Connect.this, android.R.layout.simple_list_item_1, resultMSR);
где Connect - имя класса активити - вполне просто и понятно, а я че только не перепробовал, и this и class.activity и все что только можно
MSR - наследник класса ScanResult,
resultMSR - результат сканирования сети.
Наследника класса пришлось делать по причине наличия избыточной информации о сети именно для вывода в список. А так чуть подредактировал функцию вывода toString() и все, получил SSID сети в массив.
Re: Урок 42. Список - ListView
Все верно, this это ссылка на объект экземпляра класса, но если этот класс является внутренним классом (в т.ч. и анонимным) то для доступа к объекту внешнего класса нужно явно это указать, иначе компилятор будет считать, что this это ссылка на объект внутреннего класса.