Guest User

Untitled

a guest
Mar 25th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.86 KB | None | 0 0
  1. public class CustomListView extends ArrayAdapter<String> {
  2. private ArrayList<String> symbolName;
  3. private ArrayList<String> imgId;
  4. private ArrayList<String> symbolDesc;
  5. private Activity context;
  6. InputStream inputStream;
  7. ByteArrayOutputStream byteArrayOutputStream;
  8. int ctr;
  9. /*
  10. Custom list view should contain separate arrays of each element from the JSON. I.E. the names should be parsed into one array, image ids into another
  11. */
  12.  
  13. public CustomListView(@NonNull Activity context, ArrayList<String> symbolName, ArrayList<String> symbolDesc, ArrayList<String> imgId) throws IOException {
  14. super(context, R.layout.list_item);
  15. this.context = context;
  16. this.symbolName = symbolName;
  17. this.symbolDesc = symbolDesc;
  18. this.imgId = imgId;
  19.  
  20. }
  21.  
  22. class ViewHolder {
  23. TextView text1;
  24. TextView text2;
  25. ImageView image;
  26.  
  27. ViewHolder(View v) {
  28. text1 = (TextView) v.findViewById(R.id.symbol_name);
  29. text2 = (TextView) v.findViewById(R.id.symbol_desc);
  30. image = (ImageView) v.findViewById(R.id.symbol_icon);
  31. }
  32. }
  33. @NonNull
  34. @Override
  35. public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
  36. Log.v("PassingeSymbols", symbolName.toString());
  37. View r = convertView;
  38. ViewHolder viewHolder = null;
  39.  
  40. if (r == null) {
  41. LayoutInflater layoutInflater = context.getLayoutInflater();
  42. r = layoutInflater.inflate(R.layout.list_item, null, true);
  43. viewHolder = new ViewHolder(r);
  44. r.setTag(viewHolder);
  45. } else {
  46. viewHolder = (ViewHolder) r.getTag();
  47. }
  48. //viewHolder.image.setImageResource(imgId.get(position));
  49. viewHolder.text1.setText(symbolName.get(position));
  50. viewHolder.text2.setText(symbolName.get(position));
  51. return r;
  52.  
  53. }
  54.  
  55. class SymbolsActivity : SimpleActivity() {
  56. internal val allSymbols: ArrayList<ArrayList<String>> = ArrayList<ArrayList<String>>()
  57. internal var symbolNameArr: ArrayList<String> = ArrayList<String>()
  58. internal var symbolDescArr: ArrayList<String> = ArrayList<String>()
  59. internal var imgIdArr: ArrayList<String> = ArrayList<String>()
  60.  
  61.  
  62. override fun onCreate(savedInstanceState: Bundle?) {
  63. super.onCreate(savedInstanceState)
  64. setContentView(R.layout.activity_symbols)
  65.  
  66. var lst: ListView = findViewById<ListView>(R.id.symbols_holder)
  67. lst.adapter
  68.  
  69. //TODO BUILD SYMBOL ARRAY
  70. val allSymbols: ArrayList<ArrayList<String>> = loadSymbols()
  71.  
  72.  
  73. if (allSymbols != null) {
  74. for (i in allSymbols.indices) {
  75. symbolNameArr.add(allSymbols.get(i).get(0))
  76. symbolDescArr.add(allSymbols.get(i).get(1))
  77. imgIdArr.add(allSymbols.get(i).get(2))
  78. }
  79. }
  80. Log.v("Symbols", symbolNameArr.toString())
  81.  
  82.  
  83. var customListView = CustomListView(this, symbolNameArr, symbolDescArr, imgIdArr)
  84. lst.adapter = customListView;
  85.  
  86. }
  87. override fun onResume() {
  88. super.onResume()
  89. }
  90.  
  91.  
  92.  
  93.  
  94. @Throws(IOException::class)
  95. fun loadSymbols(): ArrayList<ArrayList<String>> {
  96. val res = getResources()
  97. val `is` = res.openRawResource(R.raw.symbols)
  98. val sc = Scanner(`is`)
  99. val builder = StringBuilder()
  100. while (sc.hasNextLine()) {
  101. builder.append(sc.nextLine())
  102. }
  103.  
  104. return parseJson(builder.toString())
  105. }
  106.  
  107. private fun parseJson(s: String): ArrayList<ArrayList<String>> {
  108.  
  109. val symbolsArr = ArrayList<ArrayList<String>>()
  110.  
  111. try {
  112.  
  113. val root = JSONObject(s)
  114. val symbolsJson = root.getJSONArray("symbols")
  115. for (i in 0 until symbolsJson.length()) {
  116. val singleSymbol = ArrayList<String>()
  117. val symbolObj = symbolsJson.getJSONObject(i)
  118. singleSymbol.add(symbolObj.getString("symbol_name"))
  119. singleSymbol.add(symbolObj.getString("symbol_desc"))
  120. singleSymbol.add(symbolObj.getString("symbol_img"))
  121.  
  122.  
  123. symbolsArr.add(singleSymbol)
  124. }
  125. } catch (e: JSONException) {
  126. e.printStackTrace()
  127. }
  128.  
  129. return symbolsArr
  130. }
Add Comment
Please, Sign In to add comment