Как из 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, так же можно делать со всеми элементами.