Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
shavuz
110 / 116 / 22
Регистрация: 29.01.2014
Сообщений: 575
#1

стринг из ID - Программирование Android

30.01.2014, 14:02. Просмотров 574. Ответов 4
Метки нет (Все метки)

всем привет. в данный момент работаю над аппликацией и столкнулся с множеством кнопок в активити которые открывают PDF файлы с сд кард. в он клик методе изначально начал пользоваться свичем но это выходит не очень красиво и не модулярно т.к все кнопки делают в принципе то же самое. и по этому хочу сделать следующее: все кнопки назвать в соответствии с именем файла, например Button_G1 будет соответствовать файлу G1.pdf, далее собственно вопрос, как мне присвоить стрингу ай ди нажатой кнопки для того чтоб я не использовал свич а использовал следующее:
псевдо код:
Java
1
2
3
4
 
String id = "ай ди кнопки"
id = "айди кнопки после _"
File file3 = new File("/sdcard/giut/"+id + ".pdf");
помогите перевести псевдокод в нормальный java вид

сейчас свич выглядет так:

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
public void onClickGiut(View v) {
    // TODO Auto-generated method stub
    switch (v.getId()) {
    case R.id.ButtonG1: 
        playSound(butS);
         Toast.makeText(getApplicationContext(), 
                 "Opening File", Toast.LENGTH_LONG).show();
        File file = new File("/sdcard/giut/G1.pdf");
 
        if (file.exists()) {
            Uri path = Uri.fromFile(file);
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setDataAndType(path, "application/pdf");
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
 
            try {
                
                startActivity(intent);
                
            } 
            catch (ActivityNotFoundException e) {
                Toast.makeText(Giut.this, 
                    "No Application Available to View PDF", 
                    Toast.LENGTH_SHORT).show();
            }
        }
        break;
    case R.id.ButtonG2: 
                playSound(butS);
        Toast.makeText(getApplicationContext(), 
                "Opening File", Toast.LENGTH_LONG).show();
    File file2 = new File("/sdcard/giut/G2.pdf");
"и так далее..."
спасибо
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2014, 14:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос стринг из ID (Программирование Android):

Обычный стринг, как путь к значениям массива, как сделать? - Программирование Android
Привет всем. Хотел вытащить массивы, их очень много, и каждый прописывать в коде через конструкцию...

Объясните: проверьте, можно ли из букв, входящих в стринг А, составить стринг В - Pascal ABC
//Даны два "стринга" А и В. //Проверьте, можно ли из букв, входящих в стринг А, составить стринг В. //Буквы можно переставлять, и...

Даны два "стринга" А и В. Проверьте, можно ли из букв, входящих в стринг А, составить стринг В - Turbo Pascal
Даны два "стринга" А и В. Проверьте, можно ли из букв, входящих в стринг А, составить стринг В. Буквы можно переставлять, и каждую букву...

стринг - C++
Input: Substring 3 6 Output: string #include <iostream> using namespace std;

из чара в стринг - C++
char gorod; stringstream ss; string st; ss << gorod; ss >> st; я запутался малек, пытаюсь выбить st в edit оно мне орет что...

тип стринг - Turbo Pascal
заменить каждую группу символов АВ на ВА и посчитать количество таких замен.

4
angryrobot
Командир зеленых роботов
348 / 285 / 53
Регистрация: 08.10.2013
Сообщений: 564
30.01.2014, 14:24 #2
Каждой кнопке вы можете назначить tag который можно задать прямо в layot xml файле, а получить его программно через метод getTag. Tag это Object, поэтому положить в него можно что угодно, в вашем случае это будет обычная строка содержащая имя файла
1
shavuz
110 / 116 / 22
Регистрация: 29.01.2014
Сообщений: 575
30.01.2014, 14:33  [ТС] #3
Цитата Сообщение от angryrobot Посмотреть сообщение
Каждой кнопке вы можете назначить tag который можно задать прямо в layot xml файле, а получить его программно через метод getTag. Tag это Object, поэтому положить в него можно что угодно, в вашем случае это будет обычная строка содержащая имя файла
спасибо. буду гуглить. нет ли у вас примера?
0
angryrobot
Командир зеленых роботов
348 / 285 / 53
Регистрация: 08.10.2013
Сообщений: 564
30.01.2014, 14:40 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Написал небольшой пример. На активити размещено две кнопки:
XML
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
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
 
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:onClick="onClick"
        android:tag="Первая кнопка"
        android:text="Button1" />
 
    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/button1"
        android:onClick="onClick"
        android:tag="Вторая кнопка"
        android:text="Button2" />
 
</RelativeLayout>
Сам файл активти выглядит так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
public class MainActivity extends Activity  {
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    
    public void onClick(View v) { 
        System.out.println(v.getTag());
    }
}
Когда я запускаю приложение и нажимаю кнопки, то в логах я вижу такое:
01-30 14:39:40.678: I/System.out(28285): Первая кнопка
01-30 14:39:41.984: I/System.out(28285): Вторая кнопка
1
shavuz
110 / 116 / 22
Регистрация: 29.01.2014
Сообщений: 575
30.01.2014, 14:46  [ТС] #5
класс!! спасибо!! то что надо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2014, 14:46
Привет! Вот еще темы с ответами:

чар в стринг - C#
Теперь ситуация наоборот! У меня есть масив чаров, надо из них зделать стринг, или найти компонент какой то который сможет отобразить масив...

Делфи стринг - Delphi
Здравствуйте,подскажите пожалуйста как подсчитать в стринггриде сумма значений в строке и их среднее значение , и вывести это в другой...

стринг паскал - Pascal
програм которий покажет сколько цифр в стринге паскаль я щас на уроке помогите плиз

Написать в стринг - Delphi
Нужно написать в Label1.Caption:='can't'; Но само слово имеет апостроф, &quot; can't &quot; , как его записать? Так &quot; правильно?


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
30.01.2014, 14:46
Ответ Создать тему
Опции темы

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