// Path: app/src/main/java/com/example/maguoqing/androiddemo/base/BaseActivity.java
// public abstract class BaseActivity extends AppCompatActivity implements View.OnClickListener {
// 
//     protected Toolbar toolbar;
// 
//     @Override
//     protected void onCreate(Bundle savedInstanceState) {
//         super.onCreate(savedInstanceState);
// 
//         int layoutId = getActivityLayout();
//         if (layoutId != -1) {
//             setContentView(layoutId);
//         }
// 
//         readIntent();
//         if (findViewById(R.id.toolbar) != null){
//             toolbar = (Toolbar) findViewById(R.id.toolbar);
//             setSupportActionBar(toolbar);
//             getSupportActionBar().setDisplayHomeAsUpEnabled(true);
//         }
// 
//         setControl();
//         initControls();
//         setListeners();
//     }
// 
//     @Override
//     protected void onResume() {
//         super.onResume();
//         MobclickAgent.onResume(this);
//     }
// 
//     @Override
//     protected void onPause() {
//         super.onPause();
//         MobclickAgent.onPause(this);
//     }
// 
//     @Override
//     protected void onDestroy() {
//         super.onDestroy();
//     }
// 
//     protected abstract void setListeners();
// 
//     protected abstract void readIntent();
// 
//     protected abstract void initControls();
// 
//     protected abstract int getActivityLayout();
// 
//     @Override
//     public void onClick(View v) {
// 
//     }
// 
//     @Target({ElementType.FIELD, ElementType.TYPE})
//     @Retention(RetentionPolicy.RUNTIME)
//     @Inherited
//     public @interface ViewId {
//         int value();
//     }
// 
//     private void setControl() {
//         Class clazz = this.getClass();
//         try {
//             for (Field field : clazz.getDeclaredFields()) {
//                 field.setAccessible(true);
//                 if (!View.class.isAssignableFrom(field.getType())) {
//                     continue;
//                 }
//                 ViewId viewId = field.getAnnotation(ViewId.class);
//                 if (viewId == null) {
//                     continue;
//                 }
//                 field.set(this, this.findViewById(viewId.value()));
//             }
//         } catch (IllegalAccessException e) {
//             e.printStackTrace();
//         }
//     }
// 
//     @Override
//     public boolean onOptionsItemSelected(MenuItem item) {
//         int id = item.getItemId();
//         if (id == android.R.id.home){
//             onBackPressed();
//         }
//         return super.onOptionsItemSelected(item);
//     }
// }
// 
// Path: app/src/main/java/com/example/maguoqing/androiddemo/entity/Contact.java
// public class Contact extends SugarRecord {
//     private String name;
//     private int age;
//     private String phone_number;
// 
//     public Contact() {
// 
//     }
// 
//     public Contact(String name, int age, String phone_number) {
//         this.name = name;
//         this.age = age;
//         this.phone_number = phone_number;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public int getAge() {
//         return age;
//     }
// 
//     public void setAge(int age) {
//         this.age = age;
//     }
// 
//     public String getPhone_number() {
//         return phone_number;
//     }
// 
//     public void setPhone_number(String phone_number) {
//         this.phone_number = phone_number;
//     }
// }


import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.example.maguoqing.androiddemo.R;
import com.example.maguoqing.androiddemo.base.BaseActivity;
import com.example.maguoqing.androiddemo.entity.Contact;
import java.util.List;
package com.example.maguoqing.androiddemo.activity;




/**
 * Created by magq on 16/3/3.
 */
public class SugarActivity extends BaseActivity {

    @ViewId(R.id.btn_add)
    private Button btnAdd;
    @ViewId(R.id.btn_query)
    private Button btnQuery;

    @ViewId(R.id.tv_contacts)
    private TextView tvContacts;

    @Override
    protected void setListeners() {
        btnAdd.setOnClickListener(this);
        btnQuery.setOnClickListener(this);
    }

    @Override
    protected void readIntent() {

    }

    @Override
    protected void initControls() {

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_add:
                Contact contact = new Contact("abc", 10, "130-1111-2222");
                contact.save();
                break;
            case R.id.btn_query:
                List<Contact> contacts = Contact.listAll(Contact.class);
                String out = "";
                for (Contact c: contacts) {
// Path: app/src/main/java/com/example/maguoqing/androiddemo/base/BaseActivity.java
// public abstract class BaseActivity extends AppCompatActivity implements View.OnClickListener {
// 
//     protected Toolbar toolbar;
// 
//     @Override
//     protected void onCreate(Bundle savedInstanceState) {
//         super.onCreate(savedInstanceState);
// 
//         int layoutId = getActivityLayout();
//         if (layoutId != -1) {
//             setContentView(layoutId);
//         }
// 
//         readIntent();
//         if (findViewById(R.id.toolbar) != null){
//             toolbar = (Toolbar) findViewById(R.id.toolbar);
//             setSupportActionBar(toolbar);
//             getSupportActionBar().setDisplayHomeAsUpEnabled(true);
//         }
// 
//         setControl();
//         initControls();
//         setListeners();
//     }
// 
//     @Override
//     protected void onResume() {
//         super.onResume();
//         MobclickAgent.onResume(this);
//     }
// 
//     @Override
//     protected void onPause() {
//         super.onPause();
//         MobclickAgent.onPause(this);
//     }
// 
//     @Override
//     protected void onDestroy() {
//         super.onDestroy();
//     }
// 
//     protected abstract void setListeners();
// 
//     protected abstract void readIntent();
// 
//     protected abstract void initControls();
// 
//     protected abstract int getActivityLayout();
// 
//     @Override
//     public void onClick(View v) {
// 
//     }
// 
//     @Target({ElementType.FIELD, ElementType.TYPE})
//     @Retention(RetentionPolicy.RUNTIME)
//     @Inherited
//     public @interface ViewId {
//         int value();
//     }
// 
//     private void setControl() {
//         Class clazz = this.getClass();
//         try {
//             for (Field field : clazz.getDeclaredFields()) {
//                 field.setAccessible(true);
//                 if (!View.class.isAssignableFrom(field.getType())) {
//                     continue;
//                 }
//                 ViewId viewId = field.getAnnotation(ViewId.class);
//                 if (viewId == null) {
//                     continue;
//                 }
//                 field.set(this, this.findViewById(viewId.value()));
//             }
//         } catch (IllegalAccessException e) {
//             e.printStackTrace();
//         }
//     }
// 
//     @Override
//     public boolean onOptionsItemSelected(MenuItem item) {
//         int id = item.getItemId();
//         if (id == android.R.id.home){
//             onBackPressed();
//         }
//         return super.onOptionsItemSelected(item);
//     }
// }
// 
// Path: app/src/main/java/com/example/maguoqing/androiddemo/entity/Contact.java
// public class Contact extends SugarRecord {
//     private String name;
//     private int age;
//     private String phone_number;
// 
//     public Contact() {
// 
//     }
// 
//     public Contact(String name, int age, String phone_number) {
//         this.name = name;
//         this.age = age;
//         this.phone_number = phone_number;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public int getAge() {
//         return age;
//     }
// 
//     public void setAge(int age) {
//         this.age = age;
//     }
// 
//     public String getPhone_number() {
//         return phone_number;
//     }
// 
//     public void setPhone_number(String phone_number) {
//         this.phone_number = phone_number;
//     }
// }


// Path: app/src/main/java/com/example/maguoqing/androiddemo/activity/SugarActivity.java
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.example.maguoqing.androiddemo.R;
import com.example.maguoqing.androiddemo.base.BaseActivity;
import com.example.maguoqing.androiddemo.entity.Contact;
import java.util.List;

package com.example.maguoqing.androiddemo.activity;




/**
 * Created by magq on 16/3/3.
 */
public class SugarActivity extends BaseActivity {

    @ViewId(R.id.btn_add)
    private Button btnAdd;
    @ViewId(R.id.btn_query)
    private Button btnQuery;

    @ViewId(R.id.tv_contacts)
    private TextView tvContacts;

    @Override
    protected void setListeners() {
        btnAdd.setOnClickListener(this);
        btnQuery.setOnClickListener(this);
    }

    @Override
    protected void readIntent() {

    }

    @Override
    protected void initControls() {

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_add:
                Contact contact = new Contact("abc", 10, "130-1111-2222");
                contact.save();
                break;
            case R.id.btn_query:
                List<Contact> contacts = Contact.listAll(Contact.class);
                String out = "";
                for (Contact c: contacts) {
                    out += c.getId() + c.getName() + ", " + c.getAge() + ", " + c.getPhone_number() + "\n";