Android Query(AQuery)

Posted 事在人为,幸福从不抱怨开始!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Query(AQuery)相关的知识,希望对你有一定的参考价值。

      做app开发也近7年了,今天在看一个第三方SDK时,才发现居然有AQuery这个框架,真是孤陋寡闻呀。
 上github去看了一下,发现这个框架的star和fork都很少,难道在项目中用到这个框架的不多吗?
 看了下介绍,发现还是蛮好用的,所以也把其Github的上说明代码copy点过来,下次有机会也用下这个框架。
      框架地址:https://github.com/androidquery/androidquery
Initializing AQuery :

// AQuery in Activity
public class MainActivity extends AppCompatActivity

    private AQuery aq;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        aq = new AQuery(this);
    


// AQuery in Fragment
public class MainFragment extends Fragment

    private AQuery aq;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater,
                             @Nullable ViewGroup container,
                             @Nullable Bundle savedInstanceState) 
        return inflater.inflate(R.layout.fragment_home, container, false);
    

    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) 
        super.onViewCreated(view, savedInstanceState);
        aq = new AQuery(getActivity());
    


// AQuery in ViewHolder
public class ViewHolder extends RecyclerView.ViewHolder

    private AQuery aq;

    public ViewHolder(View itemView) 
        super(itemView);
        aq = new AQuery(itemView.getContext(), itemView);
    

Query Activity :

// Fast intent
aq.open(HomeActivity.class);

// Custom intent
Intent intent = new Intent(this, HomeActivity.class);
intent.putExtra("id",1);
aq.open(intent);

// Intent transition from left and right
aq.openFromRight(HomeActivity.class);
aq.openFromLeft(HomeActivity.class);
aq.openFromRight(intent);
aq.openFromLeft(intent);

// Close activity transition
aq.closeToRight();
aq.closeToLeft();
Query View :

// OnClickListener
aq.id(R.id.login).click(v -> 
  // Do stuff
);

// Check is text not empty
boolean valid = aq.id(R.id.input_email).isValid();

// Get text value of view is avaliable
String email = aq.id(R.id.input_email).text();

// Set Visibilty Gone
aq.id(R.id.input_email).hide();

// Set Visibilty Visible
aq.id(R.id.input_email).show();

// Cast view
DefaultTextField defaultTextField = aq.id(R.id.input_email).as(DefaultTextField.class);

// Active state View
aq.id(R.id.input_email).active();
aq.id(R.id.input_email).inActive();

// If you want rounded image
aq.id(R.id.image).image(user.getAvatar_url()).rounded();

// If you want set from drawable
aq.id(R.id.image).image(R.drawable.profile);
Query Toas :

// Simple toas
aq.snack("Message");
aq.toast("Message");
Query Network :

// Ajax get
aq.ajax("https://api.github.com/users/ar-android")
        .get()
        .showLoading()
        .toObject(GithubUsers.class, (user, error) -> 
            // Do stuff
        );

// Ajax POST form
Map<String, String> params = new HashMap<>();
params.put("email", aq.id(R.id.email).text());
params.put("password", aq.id(R.id.password).text());
aq.ajax("https://ocit-tutorial.herokuapp.com/index.php")
        .postForm(params)
        .showLoading()
        .response((response, error) -> 
            if (response != null)
                aq.openFromRight(MainActivity.class);
            
        );
Query Shared Preferences :

// Save string to shared preferences
aq.saveString("token", response.getData().getToken());

// Grab string from shared preferences
String token = aq.grabString("token");
Query SQLite :

//Storing data to SQLite
Map<String, Object> data = new HashMap<>();
data.put("nama", "Putri Nuraini");
data.put("email", "alahmadrosid@gmail.com");
aq.sql().table("user").insert(data);

// Get All row from table
List<Map<String, String>> user = aq.sql().table("user").all();

// Update row from table by id
boolean update = aq.sql().table("user").update(3, data);

// Get row table by id
Map<String, String> user = aq.sql().table("user").get(3);

// Get table by first row
Map<String, String> user = aq.sql().table("user").first();

// Get table by last row
Map<String, String> user = aq.sql().table("user").last();

// Delete table by id
boolean delete = aq.sql().table("user").delete(2);

// Clear database sqlite
aq.sql().clearDb();

To use this library Add in you top build.gradle :


allprojects 
    repositories 
      maven  url 'https://jitpack.io' 
    
  

Setup java 8 compiler for enable lambada expression in you app build.gradle :


compileOptions 
  sourceCompatibility 1.8
  targetCompatibility 1.8

Add the dependency in you app build.gradle :

implementation 'com.github.ar-android:AQuery:1.0.3'

以上是关于Android Query(AQuery)的主要内容,如果未能解决你的问题,请参考以下文章

运行具有 AQuery 库的 ProGuard

Jaeger query 分析

pandas query

aquery验证

sap创建query报表查询时,选择字段按照顺序选择完毕,但测试时显示字段顺序颠倒

用Spring MongoTemplate实现根据时间倒序查询