mysql - 如何在不点击按钮的情况下自动从 MySQL 获取数据到 Android?

标签 mysql json button barcode android-studio-2.0

我希望条形码扫描的结果能够自动从 MySQL 获取数据,而无需再次单击按钮。

这是我单击按钮以从 MySQL 获取数据的代码。如何在不再次单击按钮的情况下获得相同的数据?

public class EditPerangkat extends AppCompatActivity implements View.OnClickListener {

private EditText editTextNoIT;
private Button buttonGet;
private TextView textViewResult;

private ProgressDialog loading;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.editperangkat);

    Scan = (Button) findViewById(R.id.buttonScan);
    buttonGet = (Button) findViewById(R.id.buttonGet);
    textViewResult = (TextView) findViewById(R.id.textViewResult);

    Scan.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            IntentIntegrator scanIntegrator = new IntentIntegrator(EditPerangkat.this);
            scanIntegrator.initiateScan();
        }
    });

    buttonGet.setOnClickListener(this);
}

private void getData() {
    String it = editTextNoIT.getText().toString().trim();
    if (it.equals("")) {
        Toast.makeText(this, "Please input data", Toast.LENGTH_LONG).show();
        return;
    }
    loading = ProgressDialog.show(this,"Please wait...","Fetching...",false,false);

    String url = Config.URL_GET+editTextNoIT.getText().toString().trim();

    StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            loading.dismiss();
            showJSON(response);
        }
    },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Toast.makeText(EditPerangkat.this,error.getMessage().toString(),Toast.LENGTH_LONG).show();
                }
            });

    RequestQueue requestQueue = Volley.newRequestQueue(this);
    requestQueue.add(stringRequest);
}

public void showJSON(String response){
    String jenisperangkat="";
    String namaperangkat="";
    String serialnumber= "";
    try {
        JSONObject jsonObject = new JSONObject(response);
        JSONArray result = jsonObject.getJSONArray(Config.JSON_ARRAY);
        JSONObject collegeData = result.getJSONObject(0);
        jenisperangkat = collegeData.getString(Config.KEY_PER_JENISPERANGKAT);
        namaperangkat = collegeData.getString(Config.KEY_PER_NAMAPERANGKAT);
        serialnumber = collegeData.getString(Config.KEY_PER_SERIALNUMBER);
    } catch (JSONException e) {
        e.printStackTrace();
    }
    textViewResult.setText(jenisperangkat + "\n" + namaperangkat + "\n" + serialnumber);
}

@Override
public void onClick(View v) {
    getData();
}

最佳答案

您的 IntentIntegrator 类应该提供一些回调/监听器事件。 扫描完成后,回调/事件将被触发,您可以调用 getdata()。

关于mysql - 如何在不点击按钮的情况下自动从 MySQL 获取数据到 Android?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37535707/

相关文章:

button - Kivy 中的更改颜色按钮

javascript - 在带有 innerHTML 的 Javascript 中使用引号

mysql - 将 Coldfusion 应用程序迁移到 Lucee

ios - 无法将 JSON 响应分配给预先声明的数组

javascript - 当句子中出现某个单词时替换整个字符串 javascript/Google Chrome 扩展

javascript - 将 Laravel 集合/数组转换为 Javascript 数组

mysql - LEFT JOIN 与 COUNT 出现错误

php - 处理并发问题的最佳方法

对x英里半径内的其他行的mySQL经纬度查询

javascript - Chrome 扩展程序弹出窗口不起作用,点击事件未处理