2017-01-14 2 views
-2

У меня есть простой переключатель случай:переключатель случая, GetText дела андроид

switch (view.getId()){ 
     case R.id.one: 

     break; 
     case R.id.two: 

     break; 
     } 

То, что я хотел бы сделать, это написать что-то умное и самодостаточное, чтобы получить текстовое значение указанных TextViews. Например, r.id.one содержит текст 1, в то время как r.id.two содержит текст 2. Всякий раз, когда я нажимаю 1, я хочу получить его текстовое значение. Я знаю, что это может быть сделано следующим образом:

TextView one = (TextView)findviewbyid(r.id.one); 
one.getText(); 

Но с увеличением TextViews будет трудно поддерживать, как я хочу, чтобы использовать полученное значение в дальнейшем.

Спасибо заранее за все downvotes, очень полезно.

Решение:

switch (view.getId()){ 
     case R.id.one: 
     String number = (String) ((TextView)view).getText(); 
     break; 
     case R.id.two: 
     String number = (String) ((TextView)view).getText(); 
     break; 
     } 

Теперь число принимает значение от TextView. Спасибо всем.

+1

«с увеличением текстовых изображений его будет трудно поддерживать». «Я хочу использовать полученное значение позже»? вам нужно сохранить значения, но не взгляды (o.O)! –

+0

В моем случае я не управляю никакими данными. Все, что мне нужно, чтобы получить значение, из textview без объявления текстового представления в каждом отдельном случае, сделать метод, который я могу использовать в каждом случае. –

ответ

2

Вместо переключателя вы можете попытаться получить текст, если вид представляет собой любой TextView. Например:

if (view instanceof TextView) { 
    ((TextView) view).getText(); 
} 
+0

Спасибо, человек, это именно то, что я искал. Запись этого внутри флага: Строковый номер = (String) ((TextView))) .getText(); предоставили мне номер из моего текста. –

1

Try Butterknife библиотека.

использовать что-то вроде:

@OnClick({R.id.textviewID1, R.id.textviewID1) 
protected void onTextViewClick(TextView textView) { 
    textView.getText(); 
} 

Это позволяет использовать ту же самую функцию обратного вызова для каждого TextView, используя только простую аннотацию.

И делает код более удобочитаемым.

+0

Спасибо, но я искал что-то простое без использования сторонних библиотек. –

Смежные вопросы