Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
shavuz
114 / 120 / 25
Регистрация: 29.01.2014
Сообщений: 596
#1

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

30.01.2014, 14:02. Просмотров 605. Ответов 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):

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

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

Из массива стринг в двумерный массив стринг
У меня есть массив строк, в каждой строки записаны слова через пробел. Мне...

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

стринг
Input: Substring 3 6 Output: string #include <iostream> using...

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

4
angryrobot
Командир зеленых роботов
348 / 285 / 54
Регистрация: 08.10.2013
Сообщений: 565
30.01.2014, 14:24 #2
Каждой кнопке вы можете назначить tag который можно задать прямо в layot xml файле, а получить его программно через метод getTag. Tag это Object, поэтому положить в него можно что угодно, в вашем случае это будет обычная строка содержащая имя файла
1
shavuz
114 / 120 / 25
Регистрация: 29.01.2014
Сообщений: 596
30.01.2014, 14:33  [ТС] #3
Цитата Сообщение от angryrobot Посмотреть сообщение
Каждой кнопке вы можете назначить tag который можно задать прямо в layot xml файле, а получить его программно через метод getTag. Tag это Object, поэтому положить в него можно что угодно, в вашем случае это будет обычная строка содержащая имя файла
спасибо. буду гуглить. нет ли у вас примера?
0
angryrobot
Командир зеленых роботов
348 / 285 / 54
Регистрация: 08.10.2013
Сообщений: 565
30.01.2014, 14:40 #4
Лучший ответ Сообщение было отмечено BumerangSP как решение

Решение

Написал небольшой пример. На активити размещено две кнопки:
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
114 / 120 / 25
Регистрация: 29.01.2014
Сообщений: 596
30.01.2014, 14:46  [ТС] #5
класс!! спасибо!! то что надо
0
30.01.2014, 14:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2014, 14:46
Привет! Вот еще темы с решениями:

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

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

из чара в стринг
char gorod; stringstream ss; string st; ss &lt;&lt; gorod; ss &gt;&gt; st; я запутался...

чар в стринг
Теперь ситуация наоборот! У меня есть масив чаров, надо из них зделать стринг,...


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

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

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