如何使用 IDroid UI 绑定 API



如何使用IDroid框架在项目中获取android UI元素绑定,onClick侦听器绑定。

implementation 'com.hadoopz:IDroid:1.0.62'

确保在build.gradle文件中具有适当的依赖项

implementation 'com.hadoopz:IDroid:1.0.62'

创建 UI 布局 xml 文件。 res/layout/login.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<Button
android:id="@+id/btn1"
android:text="Test1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/btn2"
android:text="Test2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>

在项目中创建活动并在 Android 清单中声明活动.xml例如,活动类名称:MyActivity.java

将这些注释导入类:

import com.hadoopz.MyDroidLib.inject.annotation.ContentView;
import com.hadoopz.MyDroidLib.inject.annotation.Event;
import com.hadoopz.MyDroidLib.inject.annotation.ViewInject;
import com.hadoopz.MyDroidLib.inject.y;

将布局注释放入类标题,如下所示:

@ContentView(R.layout.login)
public class MyActivity extends Activity {.....}

在android onCreate方法中初始化IDroid UI框架,如下所示:

@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
requestWindowFeature(1);
y.view().inject((Activity) this);
}

将 UI 元素注入到下面的活动属性:

@ViewInject(R.id.btn1)
private TextView btn1;
@ViewInject(R.id.btn2)
private TextView btn2;

将 onClick 侦听器绑定到活动中的私有方法,如下所示: 请确保该方法是私有的。

@Event({R.id.btn1, R.id.btn2})
private void viewListeners(View view) {
switch (view.getId()) {
case R.id.btn1:
Log.d(getClass().getSimpleName(), "button2 is clicked" );
break;
case R.id.btn2 :
Log.d(getClass().getSimpleName(), "button2 is clicked" );
break;
default:
break;
}
}

这就是我们在 Kotlin 中的做法:

@Event(value = intArrayOf(R.id.btn1, R.id.btn2))
private fun allListener(view: View?) {
when (view?.getId()) {
R.id.btn1 -> {
Log.d(getClass().getSimpleName(), "button1 is clicked" );
}
R.id.btn2 -> {
Log.d(getClass().getSimpleName(), "button2 is clicked" );
}
}

完成此操作后,您可以删除如下代码:

Button btn1 = (Button)findViewById(R.id.btn1);
Button btn2 = (Button)findViewById(R.id.btn2);
btn1.setOnClickListener(.....);
btn2.setOnClickListener(.....);

最新更新