Модераторы: javastic
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение контента из удалённого файла и вывод его 
:(
    Опции темы
Rammsteinik
Дата 19.2.2013, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 19.2.2013

Репутация: нет
Всего: нет



Всем привет, начал заниматься программированием под Android совсем недавно. Вот который день мучаюсь с простейшим кодом. Даже решил попросить увас помощи, ибо сам не в силах осмыслить. Данная программа должна считывать содержание файла в интернете и выводить его в Toast (всплывающее сообщение). Например, в удалённом файле написано "Hello world!" и это сообщение выводится в тоаст при нажатии на кнопку. Перепробывал все возможные варианты кодов. При нажатии на кнопку либо ничего не происходит, либо приложение вылетает. Помогите, очень нужно! Желательно расписать всё подробно, чтобы я смог разобраться =)

Вот полный код main_activity

Код

package com.example.byfile;

import android.os.Bundle;
import com.example.byfile.R;
import android.app.Activity;

import android.os.Bundle;

import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import java.net.URL;
import java.io.*;


public class MainActivity extends Activity {
    

     Button btnSend;
     
         
     
        @Override
        public void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main); 

            btnSend = (Button) findViewById(R.id.btnSend);

            btnSend.setOnClickListener(new View.OnClickListener() 
            {
                public void onClick(View v) 
                {    
                 
                 try
                 {
                     URL myURL = new URL("http://my-site.ru/file.txt");
                     InputStream dataStream = myURL.openConnection().getInputStream();
                     InputStreamReader isr = new InputStreamReader(dataStream, "UTF-8");
                     StringBuffer data = new StringBuffer();
                     int c;
                     while ((c = isr.read()) != -1){
                            data.append((char) c);
                     }

                     String phoneNumber = new String (data.toString());

                     Toast toast = Toast.makeText(getApplicationContext(), 
                          phoneNumber, Toast.LENGTH_SHORT); 
                          toast.show();
             } 
             catch (IOException ie) {
                   ie.printStackTrace();
             }
             }
                        
               
               
            });        
        }         
              }

Соответственно, в манифесте доступ в интернет открыт.    

Код

<uses-permission android:name="android.permission.INTERNET"/>


PM MAIL   Вверх
Rammsteinik
Дата 20.2.2013, 08:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 19.2.2013

Репутация: нет
Всего: нет



разобрался... теперь не могу вывести контент из 2х файлов в 1 тоаст. выводит только последний. вот код


Код

package com.example.byfile;

import android.os.Bundle;
import com.example.byfile.R;
import android.app.Activity;

import android.os.Bundle;

import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import java.net.*;
import java.io.*;
import java.nio.charset.Charset;

public class MainActivity extends Activity {

     Button btnSend;

        @Override
        public void onCreate(final Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            this.setContentView(R.layout.activity_main);

            final Button btnSend = (Button)this.findViewById(R.id.btnSend);
            btnSend.setOnClickListener(new View.OnClickListener()
            {
                public void onClick(final View v)
                {
                    new Thread(new Runnable()
                    {
                        @Override
                        public void run()
                        {
                            try
                            {
                                 final URL myURL = new URL("http://мой-сайт/1.txt");
                                    final URLConnection connection = myURL.openConnection();
                                    connection.setDoInput(true);
                                    final Reader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), Charset.forName("UTF-8")));

                                    final URL myURL2 = new URL("http://мой-сайт/2.txt");
                                    final URLConnection connection2 = myURL2.openConnection();
                                    connection2.setDoInput(true);
                                    final Reader reader2 = new BufferedReader(new InputStreamReader(connection2.getInputStream(), Charset.forName("UTF-8")));
                                try
                                {
                                    //буфер 1   
                                    final char [] buffer1 = new char[1024];
                                    final StringBuilder message = new StringBuilder();

                                    int readCount;
                                    do
                                    {
                                        readCount = reader.read(buffer1);
                                        message.append(buffer1);
                                    }
                                    while (readCount >= buffer1.length);

                                    //буфер 2
                                    final char [] buffer2 = new char[1024];
                                    final StringBuilder message2 = new StringBuilder();

                                    int readCount2;
                                    do
                                    {
                                        readCount2 = reader2.read(buffer2);
                                        message2.append(buffer2);
                                    }
                                    while (readCount2 >= buffer2.length);

                                    MainActivity.this.runOnUiThread(new Runnable()
                                    {
                                        @Override
                                        public void run()
                                        {

                                            Toast.makeText(MainActivity.this.getApplicationContext(), message + message2.toString(), Toast.LENGTH_LONG).show();
                                        }
                                    });

                                }
                                catch (final IOException ex)
                                {
                                    Log.d("IOException", ex.getMessage());
                                }
                                finally
                                {
                                    reader.close();
                                }
                            }
                            catch (final Exception ex)
                            {
                                Log.d("Some exception", ex.getMessage());
                            }
                        }
                    }).start();

                }
            });

}}

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Android | Следующая тема »


 




[ Время генерации скрипта: 0.0765 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.