Re: Урок 44. События в ListView
Добавлено: 13 дек 2014, 23:45
как можно добавить subitem ?
Добро пожаловать на форум сайта
http://forum.startandroid.ru/
Код: Выделить всё
public class MainActivity extends Activity implements OnItemClickListener{
TextView mTextView ;
String[] contact={"aaa","bbb","ccc","ddd","eee","fff","ggg","hhh","qqq","rrr","sss"} ;
ListView lv;
final String LOG_TAG="myLog";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mTextView=(TextView) findViewById(R.id.textSelect);
lv=(ListView) findViewById(R.id.list);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,
contact);
lv.setAdapter(adapter);
lv.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
Log.d(LOG_TAG, "itemClick: position = " + position + ", id = "
+ id);
}
}
Добавьте эту информацию в урок, пожалуйста!MASK писал(а):Спасибо большое за это сообщение, а то я уже не знала как заставить работать этот OnItemSelectedListener. На эмуляторе теперь работает, а вот как его активировать на реальном девайсе - ума не приложу, там-то нет клавиатуры с пробеломSerge писал(а):После этого урока возник вопрос по эмулятору.
ItemSelect у меня вызывается только при нажатии пробела, при этом позиционируется на строке, где был последний клик. Ни кнопки курсора, ни колесо мыши не работает.
Если кто-то разобрался - прошу помощи, хотя подозреваю, что этот метод на самом деле оставлен в коде рудиментарно и в жизни не используется.
Буду рада любым ответам!
Кто пришел на замену?Foenix писал(а):листвью уже все, отжил
а кто спрашивает?doter.ua писал(а):Кто пришел на замену?Foenix писал(а):листвью уже все, отжил
яFoenix писал(а):а кто спрашивает?doter.ua писал(а):Кто пришел на замену?Foenix писал(а):листвью уже все, отжил
doter.ua писал(а):яFoenix писал(а):а кто спрашивает?doter.ua писал(а):Кто пришел на замену?Foenix писал(а):листвью уже все, отжил
Код: Выделить всё
public class StartActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(R.layout.activity_start);
// получаем экземпляр элемента ListView
ListView listView = (ListView)findViewById(R.id.listView1);
// определяем массив типа String
String[] names = getResources().getStringArray(R.array.main_menu);
//// используем адаптер данных
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, names);
listView.setAdapter(adapter);
// Обработка события на клик по элементу списка
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View itemClicked, int position,
long id) {
if (position==0){
Intent intent = new Intent(StartActivity.this, OneActivity.class);
startActivity(intent);
}
else if (position==1){
Intent intent = new Intent(StartActivity.this, TwoActivity.class);
startActivity(intent);
}
else if (position==2){
Toast.makeText(getApplicationContext(), "Зачем нажали:" +
", id = " + id + ", " + parent.getAdapter().getItem(position),
Toast.LENGTH_SHORT).show();
}
}});
В первой активности сделайте список с url. В onItemClick :kefir_mbis писал(а):Привет! Друзья, разъясните один момент.
Есть список listview, по нажатию на элемент списка, требуется передать адрес интернет-ресурса в другую активность с webview.
Как реализовать? Пока сделано ужасно грубо, каждый элемент списка создает новую активность, в ней webview + url
Позиций в списке около 300
Много гуглил на эту тему, и как я понял, передачей строки должен заниматься тот же intent с передаваемой строкой в слушателе OnItemClickListener
Но примеров даже похожей ситуации не нашел. Очень прошу, набросайте на коленке (или пните в нужную сторону), какой параметр с адресом должна отдавать первая активность, и как вторая должна принять на входе.
Пока сделано так:
Код: Выделить всё
public class StartActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); setContentView(R.layout.activity_start); // получаем экземпляр элемента ListView ListView listView = (ListView)findViewById(R.id.listView1); // определяем массив типа String String[] names = getResources().getStringArray(R.array.main_menu); //// используем адаптер данных ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, names); listView.setAdapter(adapter); // Обработка события на клик по элементу списка listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View itemClicked, int position, long id) { if (position==0){ Intent intent = new Intent(StartActivity.this, OneActivity.class); startActivity(intent); } else if (position==1){ Intent intent = new Intent(StartActivity.this, TwoActivity.class); startActivity(intent); } else if (position==2){ Toast.makeText(getApplicationContext(), "Зачем нажали:" + ", id = " + id + ", " + parent.getAdapter().getItem(position), Toast.LENGTH_SHORT).show(); } }});
Код: Выделить всё
Intent intent = new Intent(StartActivity.this, UrlActivity.class);
intent.putExtra("url", vashSpisok.get(position));
startActivity(intent);
Код: Выделить всё
String url = getIntent().getStringExtra("url");
Я от этого урока и отталкивался. Там передается значение текста в string, которое отображается в новой активности.Realist писал(а):
В первой активности сделайте список с url. В onItemClick :Во второй активности в onCreate:Код: Выделить всё
Intent intent = new Intent(StartActivity.this, UrlActivity.class); intent.putExtra("url", vashSpisok.get(position)); startActivity(intent);
Урок 28 почитайте.Код: Выделить всё
String url = getIntent().getStringExtra("url");
Сделал так:kefir_mbis писал(а):
Я от этого урока и отталкивался. Там передается значение текста в string, которое отображается в новой активности.
Но я повторюсь, не нашел примеров для моего случая, оттуда и сложности.
За оперативность и подсказку огромное спасибо
Код: Выделить всё
// Обработка события на клик по элементу списка
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View itemClicked, int position,
long id) {
if (position==0){
Intent intent = new Intent(StartActivity.this, One_oneActivity.class);
intent.putExtra("KeyName", "http://ya.ru"); // pass your values and retrieve them in the other Activity using AnyKeyName
startActivity(intent);
}
Код: Выделить всё
protected void initUI() {
mWebViewone_one = ((FrameLayout)findViewById(R.id.webViewone_one));
if (WebView == null) {
WebView = new WebView(this);
String data = getIntent().getExtras().getString("KeyName");
WebView.loadUrl(data);
WebView.getSettings().setJavaScriptEnabled(true);
}
Таже проблема, не работает ItemSelect, не могу никак разобраться ......i.lavrenov писал(а):Добавьте эту информацию в урок, пожалуйста!MASK писал(а):Спасибо большое за это сообщение, а то я уже не знала как заставить работать этот OnItemSelectedListener. На эмуляторе теперь работает, а вот как его активировать на реальном девайсе - ума не приложу, там-то нет клавиатуры с пробеломSerge писал(а):После этого урока возник вопрос по эмулятору.
ItemSelect у меня вызывается только при нажатии пробела, при этом позиционируется на строке, где был последний клик. Ни кнопки курсора, ни колесо мыши не работает.
Если кто-то разобрался - прошу помощи, хотя подозреваю, что этот метод на самом деле оставлен в коде рудиментарно и в жизни не используется.
Буду рада любым ответам!
мне тоже стало интересно и вот что оказывается. нажатие в режиме Touch mode не вызывает это событие, т.к. не происходит выделения элемента. Это событие срабатывает только когда выделения происходит с помощью аппаратных кнопок. Поэтому у коллеги и сработало по пробелу.MASK писал(а):Спасибо большое за это сообщение, а то я уже не знала как заставить работать этот OnItemSelectedListener. На эмуляторе теперь работает, а вот как его активировать на реальном девайсе - ума не приложу, там-то нет клавиатуры с пробеломSerge писал(а):После этого урока возник вопрос по эмулятору.
ItemSelect у меня вызывается только при нажатии пробела, при этом позиционируется на строке, где был последний клик. Ни кнопки курсора, ни колесо мыши не работает.
Если кто-то разобрался - прошу помощи, хотя подозреваю, что этот метод на самом деле оставлен в коде рудиментарно и в жизни не используется.
Буду рада любым ответам!