Я пытался добавить прослушиватель кликов к кнопке, которую я создал в действии, но макет был добавлен в другое действие через Inflater, но кнопка не получает событие, указанное ниже, это мой код
XML Layout
<Button
android:layout_width="wrap_content"
android:layout_height="25dp"
android:layout_alignParentRight="true"
android:layout_marginEnd="8dp"
android:layout_marginTop="15dp"
android:background="@drawable/rounded_transparent_botton"
android:textAllCaps="false"
style="@style/transparentButton"
android:text="Edit Profile"
android:id="@+id/edit_profile"/>
Основная деятельность
public class MainActivity extends BaseActivity implements View.OnClickListener{
Button edit_profile;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initAddLayout(R.layout.activity_profile);
setActivityTitle(R.string.profile_activity_title);
loadData();
FontChangeCrawler fontChanger = new FontChangeCrawler(getAssets(), "fonts/Merriweather-Bold.ttf");
fontChanger.replaceFonts((ViewGroup) this.findViewById(android.R.id.content));
this.edit_profile = findViewById(R.id.edit_profile);
this.edit_profile.setOnClickListener(this);
}
@Override
public void onClick(View view) {
if (view.getId()==R.id.edit_profile){
Log.i("TAG", "PROFILE CLICKED");
}
}
}
BaseActivity.class
public class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_base);
}
protected void initAddLayout(int layout) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(layout, null, false);
((FrameLayout) findViewById(R.id.main_content_below)).addView(view);
}
}
кнопка edit_profile из основного действия отказывается принимать прослушиватель щелчков.
Суть расширения BaseActivity
в MainActivity
заключается в том, что BaseActivity
содержит некоторые базовые функции, которые большинство действий унаследует
Макет для MainActivity
загружен из BaseActivity
с использованием initAddLayout
метода BaseActivity
Любая помощь будет оценена.