1. في مشروع build.gradle
إضافة
2.at التطبيق build.gradle
إضافة
dependencies {
...
compile 'ljk.android.pangjiao:pangjiao:1.0.2'
annotationProcessor 'ljk.android.pangjiao:pangjiao:1.0.2'
}
android {
compileOptions {
...
sourceCompatibility JavaVersion . VERSION_1_8
targetCompatibility JavaVersion . VERSION_1_8
}
}
###تهيئة ###
public class TESTApplication extends Application {
@ Override
public void onCreate () {
super . onCreate ();
PangJiao . init ( this );
}
}
1.استخدام في النشاط
public class MainActivity extends PJAppCompatActivity {
@ InitView ( R . id . tv_title )
public TextView tvTitle ;
@ Override
public int initView () {
return R . layout . activity_main ;
}
@ Override
public void initData () {
tvTitle . setText ( "hello " );
}
@ OnClick ( R . id . tv_title )
public void tvClick () {
Toast . makeText ( this , tvTitle . getText (). toString (), Toast . LENGTH_SHORT ). show ();
}
@ OnClick ( R . id . tv_title )
public View . OnClickListener tvTitle_Click = v -> {
Toast . makeText ( this , tvTitle . getText (). toString (), Toast . LENGTH_SHORT ). show ();
};
@ OnClick ({ R . id . tv_title , R . id . tv_text })
public void onClick ( View view ){
}
أو
PangJiao . inject ( activity );
2.استخدام في جزء
public class TESTFragment extends PJFragment {
@ InitView ( R . id . btn_test )
public Button btnTest ;
@ Override
protected int initView () {
return R . layout . fragment_test ;
}
@ Override
protected void initData () {
btnTest . setText ( "hello pangjiao" );
}
}
أو
PangJiao . inject ( view , object );
في إطار عمل pangjiao hava @Service @Presenter، التعليق التوضيحي، الأشخاص الذين يعرفون عن الربيع يعرفون @Autowire.at pangjiao hava @Autowire و @AutowireProxy . توصي شركة Pangjiao بالتعاقد من الباطن على التعليمات البرمجية الخاصة بك مع الدليل التالي.
واجهة المستخدم (الحزمة) - النشاط (الحزمة) - جزء (الحزمة)
خدمة -واجهة (.Java) -imp (حزمة)
واجهة التطبيق (.java) -imp (الحزمة)
البدء في استخدام بانججيا
واجهة طبقة التطبيق واجهة جديدة
public interface IMemberPresent extends IPresenter {
void login ( String name , String pwd );
}
إضافة عفريت
@ Presenter
public class MemberPresent implements IMemberPresent {
@ Autowire
public IAppService appService ;
@ TargetView
public IMemberView memberView ;
@ Override
public void onDestroy () {
this . memberView = null ;
}
@ Override
public void login ( String name , String pwd ) {
appService . login ( name , pwd );
}
}
طبقة واجهة المستخدم
public class MainActivity extends PJAppCompatActivity implements IMemberView {
@ AutowireProxy
public IMemberPresent memberPresent ;
@ Override
public int initView () {
return R . layout . activity_main ;
}
@ Override
public void initData () {
memberPresent . login ( "Tom" , "123456" );
}
@ Override
public void refresh ( Object o ) {
}
}
انتهاك POST الافتراضي، طلب تنسيق JSON للنص. الطبقة الأساسية هي تطبيق HttpURLConnection.
@ Net ( api = "http://www.baidu.com" , connectTimeOut = 10000 )
public class RequestActive extends NetModel < ResponseActive > {
private String ActiveCode ;
public String getActiveCode () {
return ActiveCode ;
}
public void setActiveCode ( String ActiveCode ) {
this . ActiveCode = ActiveCode ;
}
}
public class ResponseActive extends ResponseBase {
private boolean issuccess ;
private String msg ;
private String data ;
public boolean isIssuccess () {
return issuccess ;
}
public void setIssuccess ( boolean issuccess ) {
this . issuccess = issuccess ;
}
public String getMsg () {
return msg ;
}
public void setMsg ( String msg ) {
this . msg = msg ;
}
public String getData () {
return data ;
}
public void setData ( String data ) {
this . data = data ;
}
}
كيف تستخدم؟ xx.excute();// تزامن الموضوع
public ResponseActive active ( String activeCode ) {
RequestActive requestActive = new RequestActive ();
requestActive . setActiveCode ( activeCode );
return requestActive . execute ();
}
الكيان و@Entity، السمة العامة، لا توجد فئة تغليف
@ Entity
public class User {
@ Id
public int id ;
@ Column
public String userName ;
@ Column
public String telPhone ;
}
إضافة، تحديث، استعلام، حذف
@ Override
public void queryUser ( String userName ) {
//添加新的:user,更新同样的方法,确保Id不为0
User user = new User ();
user . userName = userName ;
user . telPhone = "1322222222" ;
SQEntity . save ( user );
//查询:构建实体
User userQuery = new User ();
userQuery . userName = userName ;
List < User > search = SQEntity . search ( User . class , userQuery );
//查询:where
List < User > search1 = SQEntity . search ( User . class , "userName = '" + userName + " '" );
//删除:构建实体
User userDelete = new User ();
userDelete . telPhone = "1322222222" ;
SQEntity . deleteWhere ( User . class , userDelete );
//删除:Id
SQEntity . delete ( User . class , 2 );
}
ليست فقط الاستعلامات الترابطية المدعومة حاليًا.
استخدم @Autowireproxy عند إدخال كائنات في طبقة واجهة المستخدم.
سيقوم @autowireproxy بإدخال كائن وكيل سيتم تنفيذه في مؤشر الترابط .
لذا فإن طلبات الشبكة في طبقة التطبيق من طبقة واجهة المستخدم لا تحتاج إلى بدء سلاسل الرسائل نفسها.
يجب إضافة الكائن الذي يجب إدارته بواسطة حاوية pangjiao إلى @service أو @Presenter . الفئة المزينة بـ * @service أو ** * @presenter **، لا تحتوي على متغيرات أعضاء أخرى.