0

У меня есть настраиваемый макет диалога с текстовым видом, но у него нет класса. в моей основной деятельности в onOptionsItemSelected у меня есть «about» (в панели инструментов), где отображается диалог с этим настраиваемым макетом. Я хочу получить доступ и установить, чтобы textView отображал имя версии. Как я должен это делать? Следующее не работает: Основная деятельность:Доступ к макету текстового представления (без класса) из другого класса

public boolean onOptionsItemSelected(MenuItem item) { 
    int id = item.getItemId(); 

    if (id == R.id.action_settings) { 
     Intent i = new Intent(this,Settings.class); 
     startActivity(i); 
    } else if (id == R.id.action_about){ 
     **TextView tvvn = (TextView)findViewById(R.id.tvvn); 
     tvvn.setText(BuildConfig.VERSION_NAME);** 

     AlertDialog dialog = new AlertDialog.Builder(this) 
       .setView(getLayoutInflater().inflate(R.layout.custom_dialog, null)) 
       .create(); 
     dialog.show(); 
    } 
+0

мая есть проблема с дизайном макета. Попробуйте жестко закодировать текст в xml, чтобы увидеть, появляется ли оно – mubeen

+0

@mubeen i жестко закодировано, и оно сработало. проблема связана с рассмотренной частью в коде выше. – Daxiv1

+0

макет custom_dialog - это простой макет с двумя текстовыми представлениями. – Daxiv1

ответ

0

ли это:

  View v = getLayoutInflater().inflate(R.layout.custom_dialog, null); 
      TextView tvvn = (TextView)v.findViewById(R.id.tvvn); 
      tvvn.setText(BuildConfig.VERSION_NAME); 
      AlertDialog dialog = new AlertDialog.Builder(this) 
       .setView(v) 
       .create(); 
      dialog.show(); 
+0

спасибо. это сработало. – Daxiv1

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