Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.79
Hanty86
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 33
#1

Чтение из файла (отображение и изменение данных) - Программирование Android

22.10.2012, 19:45. Просмотров 3140. Ответов 17
Метки нет (Все метки)

Есть текстовый файл следующего содержания:

Volume=0
Mic=1
.....=0
.....=1
.....=2

Нужно прочитать параметры из файла и отобразить их визуально. (оптимально думаю в RadioGroup).
(Приложил файл с изображением.)
И также можно было изменить параметры (Через тот же RadioGroup) и сохранить/перезаписать их в этот же текстовый файл.

Можно ли передать состояние checked="true" RadioButton из файла?
Как реализовать еще возможно?
Что бы попроще.

Извиняюсь, начинаю изучать и много вопросов возникает.
Если можно пример.
Спасибо.
http://www.cyberforum.ru/android-dev/thread945841.html
0
Миниатюры
Чтение из файла (отображение и изменение данных)  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2012, 19:45
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Чтение из файла (отображение и изменение данных) (Программирование Android):

Чтение данных из файла
Пытаюсь считать текст из файла, который находится по пути...

Чтение json данных из файла
Ребят, подскажите, пожалуйста.Имеется файл тхт, где хранятся json данные. Как...

Создание файла с массивом и чтение этого файла обратно используя ShareActionProvider
Есть созданный массив, после нажатия на кнопку он должен вносится в файл, а...

Постолбцовое отображение данных из базы данных SQLite
Уважаемые форумчане, помогите пожалуйста. Необходимо вывести данные из таблицы...

Чтение из текстового файла и отображение содержимого
Как прочитать данные из текстового файла и чтобы то, что прочиталось...

17
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
22.10.2012, 20:36 #2
checkBox.isChecked();
checkBox.setChecked(boolean);
radioGroup.getCheckedRadioButtonId();
radioGroup.check(id);
Чтение и запись файла - http://dumpz.org/97352/
data storage - http://developer.android.com/guide/topics/data/data-storage.html
1
Hanty86
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 33
23.10.2012, 19:56  [ТС] #3
V0v1k, Спасибо!
Дело понемножку продвигается.
А как бы компактнее и как можно проще разместить RadioGroup на форме?
Будет около 20 групп.
Вариант 1.
Можно все их поместить в ScrollView?
Вариант 2.
Вывести их наименование в ListView и по щелчку открывать ListPreference нужный RadioGroup?
Вариант 3.
Разместить с помощью snipper'ов?

Есть еще варианты?
Спасибо!
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
23.10.2012, 20:17 #4
я бы в ListView поместил наименование и по щелчку открывал бы диалог (http://developer.android.com/guide/topics/ui/dialogs.html#AddingAList)

а как это открывать ListPreference по щелчку на ListView?

Добавлено через 2 минуты
или имелся ввиду PreferenceActivity?
1
Hanty86
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 33
23.10.2012, 20:17  [ТС] #5
Цитата Сообщение от V0v1k Посмотреть сообщение
я бы в ListView поместил наименование и по щелчку открывал бы диалог
Диалог нужен с RadioGroup, чтобы при его открытии можно было "видеть" текущее состояние RadioButton , состояние которое зацепится из файла.
Такая схема возможна?

а как это открывать ListPreference?
Спросил. Сам не знаю.

Спасибо.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
23.10.2012, 20:25 #6
Цитата Сообщение от Hanty86 Посмотреть сообщение
Диалог нужен с RadioGroup, чтобы при его открытии можно было "видеть" текущее состояние RadioButton
смотрите по ссылке приведенной выше раздел "Adding a persistent multiple-choice or single-choice list", там на рисунку multiple-choice для примера, думаю single-choice это именно то, что вам нужно.

а еще почитайте про PreferenceActivity
http://developer.android.com/referen...eActivity.html
может это лучше подойдет, зависит от ситуации.
1
Hanty86
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 33
24.10.2012, 09:11  [ТС] #7
Есть рабочий пример с ListView и Activity по клику на списке ListView.
Как добавить для каждого пункта в ListView свой Dialog?
Можно в примере показать?
Спасибо.
0
Вложения
Тип файла: zip AndroidListView.zip (50.4 Кб, 12 просмотров)
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
24.10.2012, 11:42 #8
я вам дал ссылку где показано как создавать диалог, в вашем проекте показано как обрабатывать клик по пункту списка. что еще вам не хватает?
0
Hanty86
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 33
24.10.2012, 15:27  [ТС] #9
С синтаксисом проблема.
Вот кусок кода:
Java
1
2
3
4
5
6
7
8
9
10
11
OnItemClickListener itemListener = new OnItemClickListener() {
 
            
            public void onItemClick(AdapterView<?> parent, View v,
                    int position, long id) {
                // TODO Auto-generated method stub
                showDialog(IDD_DIALOG_1);
                Toast.makeText(getApplicationContext(), "Вы выбрали "
                + position, Toast.LENGTH_SHORT).show();
            }
        };
Toast вывод мне выбранную позицию.
А как написать если выбранная позиция = 0 то показываем showDialog(IDD_DIALOG_1);
если выбранная позиция равна =1 то показываем showDialog(IDD_DIALOG_1);
Спасибо.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
24.10.2012, 17:09 #10
showDialog(position);

думаю можно обойтись 1 диалогом наполняя его каждый раз нужными айтемами.
1
Hanty86
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 33
24.10.2012, 18:34  [ТС] #11
Класс! Работает, и не нужно case использовать.
Получилось вот что:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
package com.example.testlisrview;
 
import java.util.ArrayList;
import java.util.Arrays;
 
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ListActivity;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Toast;
 
public class MainActivity extends ListActivity {
    
    AlertDialog.Builder ad;
    Context context;
    
    //индентификатор диалогового окна
    private final int IDD_DIALOG_1 = 0;
    private final int IDD_DIALOG_2 = 1;
    private final int IDD_DIALOG_3 = 2;
 
    // определяем массив типа String
    final String[] catnames = new String[] { "Вопрос №1", "Вопрос №2", "Вопрос №3"};
 
    private ArrayAdapter<String> adapter;
 
    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        OnItemClickListener itemListener = new OnItemClickListener()
        {
            @SuppressWarnings("deprecation")
            public void onItemClick(AdapterView<?> parent, View v,int position, long id) 
            {
                // TODO Auto-generated method stub
                showDialog(position);
                Toast.makeText(getApplicationContext(), "Вы выбрали "
                + position, Toast.LENGTH_SHORT).show();
            }
        };
        ArrayList<String> list = new ArrayList<String>(Arrays.asList(catnames));
        adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, list);
        // присваиваем адаптер списку
        setListAdapter(adapter);
        getListView().setOnItemClickListener(itemListener);
    }
    
    
    @Override
    protected Dialog onCreateDialog(int id) 
    {
        switch (id) 
        {
            case 0:
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                final String[] mChooseCats = { "Мурзик", "Барсик", "Пушок" };
                builder = new AlertDialog.Builder(this);
                builder.setTitle("Ваше любимое имя кота?")
                .setCancelable(false)
 
                // добавляем одну кнопку для закрытия диалога
                .setNeutralButton("Назад",new DialogInterface.OnClickListener() 
                    {
                        public void onClick(DialogInterface dialog, int id) 
                        {
                            dialog.cancel();
                        }
                    })
 
                // добавляем переключатели
                .setSingleChoiceItems(mChooseCats, -1, new DialogInterface.OnClickListener() 
                    {
                        public void onClick(DialogInterface dialog,int item) 
                        {
                            Toast.makeText(getApplicationContext(),"Любимое имя кота: "
                            + mChooseCats[item],Toast.LENGTH_SHORT).show();
                        }
                    });
            return builder.create();
            
            
        case 1:
            AlertDialog.Builder builder_2 = new AlertDialog.Builder(this);
            final String[] mChooseCats_2 = { "Шарик", "Тузик", "Бобик" };
            builder_2 = new AlertDialog.Builder(this);
            builder_2.setTitle("Ваше любимое имя собаки?")
            .setCancelable(false)
 
            // добавляем одну кнопку для закрытия диалога
            .setNeutralButton("Назад",new DialogInterface.OnClickListener() 
            {
                public void onClick(DialogInterface dialog, int id) 
                {
                    dialog.cancel();
                }
            })
 
            // добавляем переключатели
            .setSingleChoiceItems(mChooseCats_2, -1,new DialogInterface.OnClickListener() 
            {
                public void onClick(DialogInterface dialog,int item)
                {
                    Toast.makeText(getApplicationContext(),"Любимое имя собаки: "+ mChooseCats_2[item],
                    Toast.LENGTH_SHORT).show();
                }
            });
                    
            return builder_2.create();
        
        case 2:
            AlertDialog.Builder builder_3 = new AlertDialog.Builder(this);
            final String[] mChooseCats_3 = { "1", "2", "Больше двух" };
            builder_3 = new AlertDialog.Builder(this);
            builder_3.setTitle("Сколько у Вас домашних питомцев?")
            .setCancelable(false)
 
            // добавляем одну кнопку для закрытия диалога
            .setNeutralButton("Назад",new DialogInterface.OnClickListener() 
            {
                public void onClick(DialogInterface dialog, int id) 
                {
                    dialog.cancel();
                }
            })
 
            // добавляем переключатели
            .setSingleChoiceItems(mChooseCats_3, -1,new DialogInterface.OnClickListener() 
            {
                public void onClick(DialogInterface dialog,int item)
                {
                    Toast.makeText(getApplicationContext(),"У Вас домашних питомцев: "+ mChooseCats_3[item],
                    Toast.LENGTH_SHORT).show();
                }
            });
                    
            return builder_3.create();
        }
        return null;
    }
 
}
Как можно оптимизировать и использовать в данном случае 1 диалог и наполнять его разными айтемами?
Таких диалогов планируется использовать около 20-25.
Спасибо.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
24.10.2012, 19:15 #12
ну, например можно попробовать засунуть в метод setSingleChoiceItems ListAdapter, потом в адаптер вставлять нужные данные.
0
Hanty86
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 33
25.10.2012, 09:19  [ТС] #13
Спасибо. Буду пробовать.
А как при открытии диалога включить один radiobutton?
setSingleChoiceItems?

Добавлено через 10 минут
Разобрался.
0
Hanty86
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 33
29.10.2012, 09:49  [ТС] #14
С ListView и диалогами разобрался.
Теперь с файлами воюю.
Есть текстовый файл с содержанием:
Audio = 1
Mic = 2
Video = 0
Как можно найти эти записи и заменить их на свои:
Audio = 0
Mic = 1
Video = 1
Спасибо.

Добавлено через 6 минут
Просто найти эти значения:
Audio = 1
Mic = 2
Video = 0
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.10.2012, 14:06 #15
построчно читать и парсить.
потом записать обновленные данные.
я бы в json-e например держал бы эту инфу.
1
Hanty86
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 33
29.10.2012, 17:05  [ТС] #16
Цитата Сообщение от V0v1k Посмотреть сообщение
потом записать обновленные данные.
С эти разобрался.
Цитата Сообщение от V0v1k Посмотреть сообщение
я бы в json-e например держал бы эту инфу.
Я эту инфу в переменные закинул, мне так удобно.

А как построчно читать и парсить можно пример под андроид?
Спасибо.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.10.2012, 19:12 #17
http://www.javapractices.com/topic/TopicAction.do?Id=42
1
Hanty86
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 33
31.10.2012, 13:35  [ТС] #18
Буду изучать.
Как получить позицию в диалоге (0,1,2,3)?
Вот код:
Java
1
2
3
4
5
 public void onClick(DialogInterface dialog,int item) 
                        {
                            Toast.makeText(getApplicationContext(),"Любимое имя кота: "
                            + mChooseCats[item],Toast.LENGTH_SHORT).show();
                        }
mChooseCats[item] отображает наименование позиции.
Какой параметр передать, что то перепробовал кучу, не выходит чаша)

Добавлено через 1 час 24 минуты
Нашел
String.valueOf(item)

Добавлено через 23 часа 44 минуты
Собираю проект.
Добавил в основной проект функцию записи в файл.
Не работает!
Не могу понять почему.
Если отдельно в чистом проекте вызывать функцию работает.
Все одинаково.
Добавил для проверки сообщения.
Не обрабатывает BufferedWriter bw = new BufferedWriter(new FileWriter(sdFile));
Что может мешать или куда копать?
Спасибо.
Код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//ЗАПИСЫВАЕМ В ФАЙЛ
void writeFileSD() {
       Toast.makeText(getApplicationContext(),"Запуск writeFileSD",Toast.LENGTH_SHORT).show();
        // проверяем доступность SD
        if (!Environment.getExternalStorageState().equals(
            Environment.MEDIA_MOUNTED)) {  
        Toast.makeText(getApplicationContext(),"SD-карта не доступна",Toast.LENGTH_SHORT).show(); 
        return;
        }
        Toast.makeText(getApplicationContext(),"SD-карта доступна",Toast.LENGTH_SHORT).show(); 
        // получаем путь к SD
        File sdPath = Environment.getExternalStorageDirectory();
        // добавляем свой каталог к пути
        sdPath = new File(sdPath.getAbsolutePath() + "/" + DIR_SD);
        // создаем каталог
        sdPath.mkdirs();
        // формируем объект File, который содержит путь к файлу
        File sdFile = new File(sdPath, FILENAME_SD);
        //Смотрим сформированный путь к файлу
        Toast.makeText(getApplicationContext(),sdFile.getAbsolutePath() ,Toast.LENGTH_SHORT).show(); 
        
        try 
        {   Toast.makeText(getApplicationContext(),"Проверка try",Toast.LENGTH_SHORT).show(); 
            // открываем поток для записи
            BufferedWriter bw = new BufferedWriter(new FileWriter(sdFile));
            // оповещаем,  что пишем данные
            Toast.makeText(getApplicationContext(),"Пишем в файл",Toast.LENGTH_SHORT).show();
            bw.write("123");
            // закрываем поток
            bw.close();
            Toast.makeText(getApplicationContext(),"Файл записан на SD: " + sdFile.getAbsolutePath(),Toast.LENGTH_SHORT).show();
        } 
        catch (IOException e) 
        {
          e.printStackTrace();
        }  
 
}
Добавлено через 1 час 11 минут
Балбес
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Добавлено через 1 час 35 минут
Намудрил с диалогами нужна помощь:
protected Dialog onCreateDialog(int id)
{
switch (id)
{
case 0:
AlertDialog.Builder builder_0 = new AlertDialog.Builder(this);
final String[] mSelectList_0 = { "1", "2", "3", "4"};
builder_0 = new AlertDialog.Builder(this);
builder_0.setTitle("Âûáåðèòå íóæíîå:")
//îòìåíÿåì âîçâðàò
.setCancelable(false)
// äîáàâëÿåì îäíó êíîïêó äëÿ çàêðûòèÿ äèàëîãà
.setNeutralButton("Íàçàä",new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
dialog.cancel();
}
})
// äîáàâëÿåì ïåðåêëþ÷àòåëè
// âêëþ÷àåì íóæíûé ïåðåêëþ÷àòåëü (RaidoButton) ÷åðåç ïåðåìåííóþ Resolution
.setSingleChoiceItems(mSelectList_0, Resolution0 , new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog,int item)
{
Resolution = Integer.valueOf(item).intValue();
}

});
return builder_0.create();


case 1:
AlertDialog.Builder builder_1 = new AlertDialog.Builder(this);
final String[] mSelectList_1 = { "111", "222", "333", "444"};
builder_1 = new AlertDialog.Builder(this);
builder_1.setTitle("1111:")
.setCancelable(false)
.setNeutralButton("Back",new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
dialog.cancel();
}
})
.setSingleChoiceItems(mSelectList_1, Resolution1 , new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog,int item)
{
Resolution = Integer.valueOf(item).intValue();
}

});
return builder_1.create();

case 2:
AlertDialog.Builder builder_2 = new AlertDialog.Builder(this);
final String[] mSelectList_2 = { "1111", "2222", "3333", "4444"};
builder_2 = new AlertDialog.Builder(this);
builder_2.setTitle("Âûáåðèòå íóæíîå:")
//îòìåíÿåì âîçâðàò
.setCancelable(false)
// äîáàâëÿåì îäíó êíîïêó äëÿ çàêðûòèÿ äèàëîãà
.setNeutralButton("Íàçàä",new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
dialog.cancel();
}
})
// äîáàâëÿåì ïåðåêëþ÷àòåëè
// âêëþ÷àåì íóæíûé ïåðåêëþ÷àòåëü (RaidoButton) ÷åðåç ïåðåìåííóþ Resolution
.setSingleChoiceItems(mSelectList_2, Resolution2 , new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog,int item)
{
Resolution = Integer.valueOf(item).intValue();
}

});
return builder_2.create();
}
return null;

}
0
31.10.2012, 13:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2012, 13:35
Привет! Вот еще темы с решениями:

Отображение и изменение данных в БД
Здравствуйте, мне необходимо отобразить данные с 1 из таблиц в combobox и там...

Чтение и изменение файла
В общем, у меня есть книга в текстовом файле (ну, file1.txt), но порой там...

Чтение файла, чтение названия папки где находится файл, запись данных на PHP
Допустим у нас есть структура с папками типа Large -&gt; Vehicles -&gt; Firetruck_0...

Отображение файла на память (чтение и запись информации)
Короче нужно из одного файла переписать в другой используя отображение на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru