Как из Layout передать id в Main_activity?

Всем привет. Прошу не пинать сильно я только учусь. Задача: хочу "повесить" слушатель на id в MainActivity. Собственно два кода:

bottom_sheet_layuot.xml 

<LinearLayout
     android:layout_width="match_parent"
     android:layout_height="55dp"
     android:id="@+id/share"
     android:orientation="horizontal"
>

и сам MainActivity

class MainActivity : AppCompatActivity() {

   private lateinit var dialog_btn: Button
   private lateinit var share: View

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

      val bottomSheetDialog = BottomSheetDialog(this)

      val view = layoutInflater.inflate(R.layout.bottom_sheet_layuot, null)

        dialog_btn = findViewById<Button>(R.id.dialog_btn);
        share = findViewById<View>(R.id.share);

        bottomSheetDialog.setContentView(view)

        dialog_btn.setOnClickListener {
           bottomSheetDialog.show()
        }

           share.setOnClickListener {
                Toast.makeText(this, "Share",Toast.LENGTH_SHORT).show()
            }
       }
   }

Ответы (1 шт):

Автор решения: BaLamuT

Если правильно понял, то ты хочешь получить linerLayout из xml по id в MainActivity. Допустим есть в activiy_main.xml ListView

<ListView
        android:id="@+id/listView"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent">

Что бы получить его в MainActivity нужно в main создать объект ListView и присвоить его по id, получается:

public class MainActivity extends AppCompatActivity {
    private ListView listView; //создаем 
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         //... 
         listView = findViewById(R.id.listView); //присваиваем и можем дальше обращаться к listView

         //например, сделаем событие по элементу списка 
         listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
          @Override
          public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            }
        });
  }
}

R.id.listView - это id которое указано в xml, так же можно делать со всеми элементами.

→ Ссылка