创建一个非常自定义的列表

时间:2016-08-23 08:06:47

标签: android-studio

我正在开发一个应用程序,现在,我不知道下一步该做什么: 我有一个元素列表,每个元素都有一些信息+一个ID +一个标志。 我想要做的是创建一个像图片中的列表

List

当然,我希望它在单个图层中,包含徽标,一些信息和用于定义动作的按钮;我可以在哪里使用所选项目的ID。

我做了一些研究,可能是我找到了一些相关科目,但没有找到我想要的东西。

我的清单是

public class updateTxnFinAcctID {
    Map<String ,fin_acct__c> finAccts = new Map<String, fin_acct__c>
        ([select id,name from fin_acct__c where Name != null]);

    Map<String, fin_acct__c> finAcctByNames = new Map<String, fin_acct__c>();
    for(fin_acct__c finAcct: finAccts.values()){
        finAcctByNames.put(finAcct.Name, finAcct);
    }

    List<Transaction__c> txns =[select id, fin_acct_txt__c, fin_acct__c
            from Transaction__c where fin_acct__c = null
            and fin_acct_txt__c IN finAcctByNames.keySet()];

    List <Transaction__c> txnUpdate = new List<Transaction__c>();
    for (Transaction__c txn: txns){
        fin_acct__c relatedFinAcct = finAcctByNames.get(txn.fin_acct_txt__c);
        if(relatedFinAcct != null){
            txn.fin_acct__c = relatedFinAcct.Id;
            txnUpdate.add(txn);
        }       
    }   

    if(!txnUpdate.isEmpty()){ 
        update txnUpdate;
        system.debug(txnUpdate.size());
    }
}

由数据库中的数据填充。 谢谢

2 个答案:

答案 0 :(得分:0)

这是:

public class Avancee extends Activity {
    // Log tag
    private static final String TAG = MainActivity2.class.getSimpleName();

    // Movies json url
    private static final String url = "http://blabla.com/movie.json";
    private ProgressDialog pDialog;
    private List<Movie> movieList = new ArrayList<Movie>();
    private ListView listView;
    private CustomListAdapter adapter;

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

        listView = (ListView) findViewById(R.id.list);
        adapter = new CustomListAdapter(this, movieList);
        listView.setAdapter(adapter);

        pDialog = new ProgressDialog(this);
        // Showing progress dialog before making http request
        pDialog.setMessage("Loading...");
        pDialog.show();
        // changing action bar color
        getActionBar().setBackgroundDrawable(
                new ColorDrawable(Color.parseColor("#1b1b1b")));

        // Creating volley request obj

        JsonArrayRequest movieReq = new JsonArrayRequest(url,
                new Response.Listener<JSONArray>() {

                    @Override
                    public void onResponse(JSONArray response) {
                        //Log.d(TAG, response.toString());
                        hidePDialog();

                        String result = getIntent().getStringExtra("ITEM_EXTRAA");
                        System.out.println(result);
                        try{
                            JSONArray ja = new JSONArray(result);
                            for (int i = 0; i < ja.length(); i++) {
                                try {

                                    JSONObject obj = ja.getJSONObject(i);
                                    Movie movie = new Movie();
                                    movie.setTitle(obj.getString("title"));
                                    movie.setLocation(obj.getString("location_search_text"));
                                    movie.setId(obj.getInt("id"));


                                    // adding movie to movies array
                                    movieList.add(movie);

                                } catch (JSONException e) {
                                    e.printStackTrace();
                                }

                            }
                        }catch(JSONException e){
                            Log.e("log_tag", "Error parsing data "+e.toString());
                        }

                        // notifying list adapter about data changes
                        // so that it renders the list view with updated data
                        adapter.notifyDataSetChanged();
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.d(TAG, "Error: " + error.getMessage());
                hidePDialog();

            }
        });

        // Adding request to request queue
        AppController.getInstance().addToRequestQueue(movieReq);
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        hidePDialog();
    }

    private void hidePDialog() {
        if (pDialog != null) {
            pDialog.dismiss();
            pDialog = null;
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

它是&#34; id&#34;我想进入OnClick事件。

答案 1 :(得分:0)

使用此代码

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {

Movie movie= movieList.get(position);

            }
        });

//这里的位置会给你listview单元格的id,所以你可以像使用它一样 电影movie = movieList.get(position); 然后你可以使用它获取你的moview对象中的所有数据