Есть ли решение использовать только 1 findViewById в разных методах - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть 2 разных метода.

Метод a будет отображать textview1.Метод b также будет отображать textview1.

В обоих методах мне нужно включить findViewById (R.id.textview1).При этом нужно дважды поставить findViewById в коде.

Ответы [ 4 ]

0 голосов
/ 22 ноября 2018

// если вы используете Kotlin, примените этот плагин с библиотекой kotlin в вашем приложении Module Gradle

apply plugin: 'kotlin-kapt'

kapt {
    generateStubs = true
}

// тогда вы можете просто дать имя представления в макете XML и выне нужно инициализировать представление, например ..

// представление xml

<TextView
                        android:id="@+id/tv_location"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"

                        android:gravity="center_vertical"
                        android:paddingStart="8dp"
                        android:singleLine="true"

                        android:textSize="14sp" />

// теперь в классе kotlin

tv_location.text = "Kolkata,India" 

//try this 
0 голосов
/ 22 ноября 2018

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

public class Main2Activity extends AppCompatActivity {

   private TextView textView1;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main2);
      textView1 = findViewById(R.id.textview1);
   }
   private void method1(){
      textView1.setText("method 1");
   }
   private void method2(){
      textView1.setText("method 2");
   }
}
0 голосов
/ 22 ноября 2018

ButterKnife разработан Джейком Уортоном из Square и в основном используется для сохранения ввода повторяющихся строк кода, например findViewById (R.id.view), при работе с представлениями, благодаря чему наш код выглядит намного чище.

добавьте эту зависимость в ваш build.gradle

compile 'com.jakewharton:butterknife:6.1.0'

напишите это в onCreate ()

ButterKnife.bind(this);

, и тогда вы сможете найти такие элементы, как это:

@Bind(R.id.txtview1)
Textview textview;
0 голосов
/ 22 ноября 2018

Использование butterknife библиотека:

class Activity {
    @BindView(R.id.textview1)
    TextView view1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.setContentView(R.layout.activity_home);
        ButterKnife.bind(this);
    }

Теперь вы можете получить доступ к view1 любым способом в этом упражнении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...