Перейти к содержимому

Регистрация


  • Вы не можете ответить в тему
  • Перейти к первому непрочитанному сообщению
Создание ListView
backuping
  • Пользователи
  • Pip
  • 1 сообщений

Репутация: 0
Обычный

Отправлено 19 February 2012 - 19:25 #1

Доброго времени суток, товарищи форумчане)
В ходе разработки приложения у меня появился вопрос. Так как я, можно сказать, новичок в программировании на андроиде, решить его сам я не смог. Поэтому прошу у вас помощи.

В приложении есть два активити: первое - listview со списком тем, нажимая которые открывается html файл, второе - сам webview просмотр этого файла.

У меня есть исходники этих активити для файлов в папке res/raw, но у меня файлы лежат в assets (перенести в raw не вариант). Помогите, пожалуйста, сделать аналогичные listview, но для файлов из папки assets. Листинги двух активити с raw файлами привожу ниже.

MainActivity
package ru.guide;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;

public class MainActivity extends Activity
{
    private ListView lv1;
    
    //Создаем массив разделов:
    private String lv_arr[]={
            "00. Ссылка 1",
            "01. Ссылка 2",
            };
   
    
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
	    super.onCreate(savedInstanceState);
	    setContentView(R.layout.main);
	    
	    // Получим идентификатор ListView
	    lv1 = (ListView)findViewById(R.id.listView);
	    //устанавливаем массив в ListView
	    lv1.setAdapter(
	            new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , lv_arr));
	    lv1.setTextFilterEnabled(true);
			  
	    //Обрабатываем щелчки на элементах ListView:
	    lv1.setOnItemClickListener(new OnItemClickListener()
	    {
	        public void onItemClick(AdapterView<?> a, View v, int position, long id)
	        {
			    //Позиция элемента, по которому щелкнули
			    String itemname = new Integer(position).toString();  
			    
			    Intent intent = new Intent();
			    
			    intent.setClass(MainActivity.this, ViewActivity.class);
			    
			    Bundle b = new Bundle();
			    
			    //defStrID содержит строку, которую отправим через itemname в другое Activity
			    b.putString("defStrID", itemname);
			    
			    intent.putExtras(b);
			    
			    //запускаем Intent
			    startActivity(intent);
			 }
        });
    }
}

ViewActivity
package ru.guide;
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.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.WebView;
public class ViewActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
	    super.onCreate(savedInstanceState);
	   
	    requestWindowFeature(Window.FEATURE_NO_TITLE); //скрываем заголовок
	   
	    setContentView(R.layout.view);
	   
	    //скрываем строку состояния
	    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
	    WindowManager.LayoutParams.FLAG_FULLSCREEN);
	   
	    Bundle bundle = getIntent().getExtras();
	   
  String itemname = "n" + bundle.getString("defStrID"); //получаем строку и формируем имя ресурса
 
  Context context = getBaseContext(); //получаем контекст
 
  //читаем текстовый файл из ресурсов по имени
  String text = readRawTextFile(context, getResources().getIdentifier(itemname, "raw", "ru.guide;"));
 
	    WebView myWebView = (WebView) findViewById(R.id.webView);
	    String summary = "<!Doctype html><html><head><meta charset=utf-8></head><body>" + text + "</body></html>";
	    myWebView.loadData(summary, "text/html", "utf-8"); //загружаем текст в 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();
    }
}


ilich
  • Пользователи
  • PipPipPip
  • 192 сообщений
  • Город:Самара

Репутация: 8
Обычный

Отправлено 20 February 2012 - 10:11 #2

примерно так же
new InputStreamReader(getAssets().open("wordlist.txt"))
и так далее
Я на Хабре. А ещё у меня есть сайт






Похожие темы Collapse

шаблоны для сайтавсё для ipb
  Название темы Форум Автор Статистика Последнее сообщение

Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных


Рекомендуем:Андроид форум

www.androidforums.ru

Лучший андроид форум

www.androidforums.ru

Лучший андроид форум

www.androidforums.ru