How to use listener interface CallBack in Activity / Fragment

Ponglang Petrung
PongPloyDev
Published in
5 min readJul 31, 2019

please do read observer pattern

When Use Class Fragment to Activity

var  backPressedListener : BackPressedListener? = null

listener interface class BackPressedListener

interface BackPressedListener{    fun onItemClick(position: Int)
}

then in your class say DetailActivity class

class DetailActivity : AppCompatCore(), BackPressedListener {    var detailScreen : DetailScreen? = null
override fun
onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_detail)
setMainFragmentID(R.id.main_detail_contain)
detailScreen = DetailScreen()
detailScreen!!.setOnEventListener(this)
// val e = DetailScreen()
// e.setOnEventListener(object : BackPressedListener {
// override fun onBackPressedData() {
// Log.e("callback","MainActivity() ")
//// }
// }
//
//
// })
}

in your driver class XXXX and overide method onAttach

override fun onAttach(context: Context?) {
super.onAttach(context)

if (context is BackPressedListener) {
backPressedListener = context as BackPressedListener
} else {
throw RuntimeException(context!!.toString() )
}
}

how to set setOnEventListener

fun setOnEventListener(listener: BackPressedListener) {
this.backPressedListener = listener
}

then Call the First

override fun onItemClick(position: Int) {
Log.e("onItemClick" ,position.toString())
finish()
}

and run app again

or Use :

Sample for creating callback from Fragment to Activity

public interface CallBackListener {
void onCallBack();// pass any parameter in your onCallBack which you want to return
}

CallBackFragment.class

public class CallBackFragment extends Fragment {    private CallBackListener callBackListener;    public CallBackFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_call_back, container, false);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//getActivity() is fully created in onActivityCreated and instanceOf differentiate it between different Activities
if (getActivity() instanceof CallBackListener)
callBackListener = (CallBackListener) getActivity();
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Button btn = (Button) view.findViewById(R.id.btn_click);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(callBackListener != null)
callBackListener.onCallBack();
}
});
}
}

CallbackHandlingActivity.class

public class CallbackHandlingActivity extends AppCompatActivity implements CallBackListener
{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_all_user);
} @Override
public void onCallBack() {
Toast.makeText(mContext,"onCallback Called",Toast.LENGTH_LONG).show();
}
}

cr: https://stackoverflow.com/questions/18305945/how-to-resume-fragment-from-backstack-if-exists

When Use Class Fragment to Activity too

And More

Or try lamda I n this article, we add a click listener to a RecyclerView on Android. Advanced language features of Kotlin make it far easier than it has been with Java. However, you need to understand a few core concepts of the Kotlin language.

How To: RecyclerView with a Kotlin-Style Click Listener in Android

and Other

Getting Touch Held Down Callbacks on Android

Custom Listeners In Android

You have followed the group:

https://android-arsenal.com

http://www.tellmehow.co/

ใครสนใจ มา join line ได้ครับ รับจำนวนจำกัด ใครปัญหา ชอบแชร์ มีเรื่องอะไรใหม่ๆ สามารถ join เข้าได้เลยครับ 😁

หากสนใจ ก็สามารถ join ได้ที่นี้เลยครับ . หรือ scan qrcode . ไปได้เลย

[Android Github Dev] คุณได้รับคำเชิญให้เข้าร่วมสแควร์ของ LINE
https://line.me/ti/g2/UVVDK6Z5EE
Android Developer

Thank you for joining: https://www.facebook.com/groups/883546485084033/?fref=ts I created a group of Android Developers Android and Kotlin Droidcon Github library. If you have any questions, you can ask. You can join in the App Telegram. https://t.me/joinchat/IhB5KQ0aXC7ckNgjRaBaCw Now join Android Developers And Kotlin Droidcon Github Library Community Telegram App to help each other. Joining Link:

เข้าร่วม Group Line: เข้าร่วมกลุ่ม

: กล่องจดหมายเพื่อส่งอีเมล pongku71@gmail.com

Android Open Source Projects [inclusion] [SUM] [Join user groups] There is a problem with Android projects and want to give answers. What's new or want to update the robot continuously. Can join. Line: po56789 or inbox on the page, come to join, please just !!!!
Thank you

แฟนเพจ PongPloy Zone AppDev

Link : https://www.facebook.com/PPAndroid-Github-Dev-Zone-170227463027435/notifications/

Language learning application APP .

EN

Practice writing, reading, Kai-ABC, this application. Designed to be easy to use, uncomplicated, with illustrations and sound for train children to read according to Thai-English consonants clearly.Practice writing all 44 Thai consonants from chicken to hawk and 26 English consonants since A-Z makes it easy to learn and remember.This application is suitable for Thai students. And foreigners studying Thai languageAnd in the future, may add more games to children

Thai :

ฝึกเขียน อ่าน ก ไก่-ABC แอพพลิเคชั่นนี้ ออกแบบมาให้ใช้งานง่าย ไม่ซับซ้อน โดยมีภาพประกอบพร้อมเสียงสำหรับฝึก ให้เด็กๆ ท่องตาม อ่านเสียงพยัญชนะ ไทย — อังกฤษ ได้ชัดเจน ฝึกเขียนพยัญชนะไทยทั้ง 44 ตัว ตั้งแต่ ก ไก่ จนถึง ฮ นกฮูก และ พยัญชนะภาษาอังกฤษทั้ง 26 ตัว ตั้งแต่ A-Z ทำให้ง่ายต่อการเรียนรู้และจดจำแอพพลิเคชั่นนี้เหมาะสำหรับเด็กนักเรียนไทย และชาวต่างชาติที่ศึกษาภาษาไทยและต่อไปในอนาคต อาจจะเพิ่ม เกม ให้เด็กมาสนใจมากขึ้น

Download : App link : https://play.google.com/store/apps/details?id=com.pongploydev.education.mediaapp

--

--