2016-12-21 16 views
2

こんにちは私はリストビューで作業しています。リストビューの値を設定したいだけです。私は以下のコードを掲載しました。SimpleAdapterごとにコンテンツの名前が表示されます。カウントも表示されますが、カウントは表示されず、アプリではカウントの代わりにテキストビューの名前のみが表示されます。問題の解決方法を教えてください。スクリーンショットも添付しました。アダプタがリストビューに設定されていないandroid

import java.util.ArrayList; 
import android.R.*; 
import java.util.HashMap; 
import java.util.List; 

import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import android.app.ActionBar; 
import android.app.Dialog; 
import android.content.Intent; 
import android.graphics.Color; 
import android.graphics.drawable.ColorDrawable; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.os.StrictMode; 
import android.util.Log; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.Window; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.ListAdapter; 
import android.widget.ListView; 
import android.widget.SimpleAdapter; 

public class Folders extends navigation_drawer_class { 

    static final String NEW = "new", OVERDUE = "overdue", ASSIGNED = "assigned", TRASH = "trash", SPAM = "spam", NAME = "name", COUNT = "count"; 

    ListView folders_list; 
    String[] folders; 
    String[] filter_id = { 
     "2", 
     "3", 
     "4", 
     "5", 
     "6" 
    }; 
    List <String> folder_count; 
    JSONArray quick_view_array; 
    JSONObject quick_view_obj, count_obj; 
    String new_count, overdue_count, assigned_count, trash_count, spam_count; 
    List < HashMap < String, String >> menuItems; 
    Dialog dialog; 
    String URL; 
    Operation op = new Operation(); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     //setContentView(R.layout.folders); 
     new getbrand().execute(); 

     if (android.os.Build.VERSION.SDK_INT > 9) { 
      StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
      StrictMode.setThreadPolicy(policy); 
     } 

     //----------------------- 
     getLayoutInflater().inflate(R.layout.folders, frameLayout); 
     mDrawerList.setItemChecked(position, true); 
     setTitle(listArray[position]); 
     //------------------------ 

     if (Operation.isNetworkAvailable(this)) { 
      folders_list = (ListView) findViewById(R.id.folder_display_list); 
      new folders().execute(); 

      folders_list.setOnItemClickListener(new OnItemClickListener() { 

       @Override 
       public void onItemClick(AdapterView <<?> parent, View view, int position, long id) { 
        // TODO Auto-generated method stub 

        String fid = filter_id[position]; 
        String title = folders[position]; 
        Intent i = new Intent(Folders.this, Tickets.class); 
        i.putExtra("filter_id", "&vis_filter_id=" + fid); 
        i.putExtra("title", title); 
        i.putExtra("set_queue", "no"); 

        startActivity(i); 
       } 
      }); 
     } else { 
      Operation.showToast(getApplicationContext(), R.string.no_network); 
     } 
    } 
    private class folders extends AsyncTask < Void, Void, JSONArray > { 
     Dialog dialog; 
     @Override 
     public void onPreExecute() { 
      dialog = new Dialog(Folders.this, android.R.style.Theme_Translucent_NoTitleBar); 
      dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
      dialog.setContentView(R.layout.progressbar); 
      dialog.show(); 
     } 
     @Override 
     protected JSONArray doInBackground(Void...params) { 
      // TODO Auto-generated method stub 
      URL = op.getUrl(getApplicationContext(), "ticket", "quick_view", ""); 
      quick_view_array = JSONfunctions.getJSONfromURL(URL + "&vis_encode=json", Folders.this); 
      return quick_view_array; 
     } 
     @Override 
     public void onPostExecute(JSONArray quick_view_array) { 
      super.onPostExecute(quick_view_array); 
      try { 
       quick_view_obj = quick_view_array.getJSONObject(0); 
       count_obj = quick_view_obj.getJSONObject("count"); 
       folder_count = new ArrayList <String>(); 
       folder_count.add(count_obj.getString(NEW)); 
       folder_count.add(count_obj.getString(OVERDUE)); 
       folder_count.add(count_obj.getString(ASSIGNED)); 
       folder_count.add(count_obj.getString(TRASH)); 
       folder_count.add(count_obj.getString(SPAM)); 
       folders = getResources().getStringArray(R.array.folders); 
       menuItems = new ArrayList < HashMap < String, String >>(); 

       for (int i = 0; i < filter_id.length; i++) { 
        HashMap < String, String > map = new HashMap < String, String >(); 
        map.put(NAME, folders[i]); 
        map.put(COUNT, folder_count.get(i)); 
        menuItems.add(map); 
       } 

       SimpleAdapter list = new SimpleAdapter(Folders.this, 
        menuItems, 
        R.layout.folders, 
        new String[] { 
         NAME, 
         COUNT 
        }, 
        new int[] { 
         R.id.folder_name, R.id.folder_count 
        } 

       ); 
       folders_list.setAdapter(list); 
       dialog.dismiss(); 
      } catch (JSONException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // TODO Auto-generated method stub 
     MenuInflater menuInflater = getMenuInflater(); 
     menuInflater.inflate(R.menu.home, menu); 
     return true; 
    } 
    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 

     String filter_id = null, Tickets_title = null; 
     int start_limit = 0, page_no = 1; 

     // TODO Auto-generated method stub 
     switch (item.getItemId()) { 
      case R.id.menu_inbox: 
       Intent inbox = new Intent(Folders.this, Tickets.class); 
       inbox.putExtra("filter_id", "&vis_filter_id=1"); 
       inbox.putExtra("title", "Inbox"); 
       inbox.putExtra("set_queue", "no"); 
       startActivity(inbox); 
       return true; 

      case R.id.menu_new_ticket: 
       Intent new_ticket = new Intent(Folders.this, New_Ticket_step1.class); 
       startActivity(new_ticket); 
       return true; 

      case R.id.menu_ticket_queue: 
       Intent ticket_queue = new Intent(Folders.this, Queues.class); 
       ticket_queue.putExtra("set_queue", "set"); 
       startActivity(ticket_queue); 
       return true; 

      case R.id.menu_clients: 
       Intent clients = new Intent(Folders.this, Client.class); 
       startActivity(clients); 
       return true; 

       /* case R.id.menu_blabby: 
       Intent blabby = new Intent(Folders.this,Blabby.class); 
       blabby.putExtra("operation","get_blabs"); 
       blabby.putExtra("filter",""); 
       blabby.putExtra("title",(String)getString(R.string.blabs)); 
       startActivity(blabby); 
       return true; */ 
       //-------- Added for separate page 

      case R.id.menu_pin: 
       Intent pin = new Intent(Folders.this, Pinned_items.class); 
       startActivity(pin); 
       return true; 
       //-------- Added for separate page 

      case R.id.menu_settings: 
       Intent settings = new Intent(Folders.this, Settings.class); 
       startActivity(settings); 
       return true; 

      case R.id.menu_ticket_search: 
       Intent search = new Intent(Folders.this, Search.class); 
       search.putExtra("set_queue", "no"); 
       startActivity(search); 
       return true; 

      default: 
       return super.onOptionsItemSelected(item); 
     } 
    } 

    @Override 
    public void onBackPressed() { 
     moveTaskToBack(true); 
     Intent intent = new Intent(Intent.ACTION_MAIN); 
     intent.addCategory(Intent.CATEGORY_HOME); 
     intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivity(intent); 
     this.finish(); 
    } 

    private class getbrand extends AsyncTask < Void, Void, JSONArray > { 
     Dialog dialog; 
     @Override 
     public void onPreExecute() { 
      dialog = new Dialog(Folders.this, android.R.style.Theme_Translucent_NoTitleBar); 
      dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
      dialog.setContentView(R.layout.progressbar); 
      dialog.show(); 
     } 

     @Override 
     protected JSONArray doInBackground(Void...params) { 
      // TODO Auto-generated method stub 
      String access = op.getUrl(getApplicationContext(), "ticket", "get_branding", ""); 
      JSONArray access_denied = JSONfunctions.getJSONfromURL(access + "&vis_encode=json", Folders.this); 
      return access_denied; 

     } 
     @Override 
     public void onPostExecute(JSONArray access_denied) { 
      super.onPostExecute(access_denied); 
      String access_result = access_denied.toString(); 

      ActionBar ab = getActionBar(); 
      if (access_result.equals("[\"1\"]")) { 
       ab.setTitle(R.string.app_name); 
       ab.setIcon(R.drawable.application_icon); 
       // ab.setDisplayShowTitleEnabled(false); 
       // ab.setDisplayShowHomeEnabled(false); 
       // ab.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#ffffff")));  
      } else { 
       ab.setTitle(R.string.nobrand_app_name); 
       ab.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#ffffff"))); 
       ab.setIcon(R.drawable.white3); 
      } 

      dialog.dismiss(); 
     } 
    } 
} 

XML:あなたが第二のTextViewを見ることができないので、

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" 
    android:padding="3dp" 
    android:weightSum="100"> 

    <TextView 
     android:id="@+id/folder_name" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="10dp" 
     android:layout_weight="30" 
     android:text="TextView" 
     android:textColor="#115c28" 
     android:textSize="15dp" /> 

    <TextView 
     android:id="@+id/folder_count" 
     android:layout_width="match_parent" 
     android:layout_height="60dp" 
     android:layout_marginRight="10dp" 
     android:layout_weight="70" 
     android:gravity="center" 
     android:text="0" 
     android:textColor="#115c28" 
     android:textSize="20dp" 
     android:textStyle="bold" /> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="35dp" 
     android:orientation="vertical"> 

     <ListView 
      android:id="@+id/folder_display_list" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 

      /> 
    </LinearLayout> 
</LinearLayout> 
+0

'@SuppressWarnings(" deprecation ")' – rookieDeveloper

+0

しかしどこから...?私はアンドロイドに新しいです –

+0

私は質問が間違っているように見えます - 私は私の答えが助けると思ったが、アダプターがこれと何をしなければならないか分からないので、おそらく質問が画像で書き換えられて他人を助けることができる。 – ataulm

答えて

0

こんにちは、単に次のようにxmlテンプレートを変更します。

  <?xml version="1.0" encoding="utf-8"?> 
      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_gravity="top" 
      android:orientation="vertical" 
      android:weightSum="100" 
      > 
      <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" > 
      <!-- --> 
      <TextView 
      android:id="@+id/folder_name" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:paddingLeft="30dip" 
      android:textSize="15dp" 
      android:layout_weight="1" 
      android:textColor="#115c28"/> 

      <TextView 
      android:id="@+id/folder_count" 
      android:layout_width="0dp" 
      android:layout_height="60dp" 

      android:textSize="20dp" 
      android:textStyle="bold" 
      android:textColor="#115c28" 
      android:gravity="center" 
      android:paddingRight="30dip" 
      android:paddingLeft="35dip" 
      android:layout_weight="1" /> 
      <!-- --> 
      </LinearLayout> 


      <ListView 
      android:id="@+id/folder_display_list" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      /> 


      </LinearLayout> 

正しく動作しています。

+0

これは以前に動作していなかった理由を理解していますか? – ataulm

+0

はい... ataulm。ありがとうございました...! –

7
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" 
    android:padding="3dp" 
    android:weightSum="100"> 

    <TextView 
     android:id="@+id/folder_name" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="10dp" 

最初TextViewには、水平方向のLinearLayoutの全幅を占めています。

あなたはテキストビューの幅をwrap_contentにすることでカウントを確認できますが、達成しようとしているデザインと一致しない可能性があります。

+0

::それはandroid:layout_width = "wrap_parent"ですが、名前はカウントされません。 –

+0

XMLファイル –

+0

のThebottomにリストビューの問題はありますか?彼らはすべて動作する予定のないmatch_parentに設定されています。水平線形レイアウトでうまく出る。 – ataulm

関連する問題