Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class CustomListView extends ArrayAdapter<String> {
- private ArrayList<String> symbolName;
- private ArrayList<String> imgId;
- private ArrayList<String> symbolDesc;
- private Activity context;
- InputStream inputStream;
- ByteArrayOutputStream byteArrayOutputStream;
- int ctr;
- /*
- 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
- */
- public CustomListView(@NonNull Activity context, ArrayList<String> symbolName, ArrayList<String> symbolDesc, ArrayList<String> imgId) throws IOException {
- super(context, R.layout.list_item);
- this.context = context;
- this.symbolName = symbolName;
- this.symbolDesc = symbolDesc;
- this.imgId = imgId;
- }
- class ViewHolder {
- TextView text1;
- TextView text2;
- ImageView image;
- ViewHolder(View v) {
- text1 = (TextView) v.findViewById(R.id.symbol_name);
- text2 = (TextView) v.findViewById(R.id.symbol_desc);
- image = (ImageView) v.findViewById(R.id.symbol_icon);
- }
- }
- @NonNull
- @Override
- public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
- Log.v("PassingeSymbols", symbolName.toString());
- View r = convertView;
- ViewHolder viewHolder = null;
- if (r == null) {
- LayoutInflater layoutInflater = context.getLayoutInflater();
- r = layoutInflater.inflate(R.layout.list_item, null, true);
- viewHolder = new ViewHolder(r);
- r.setTag(viewHolder);
- } else {
- viewHolder = (ViewHolder) r.getTag();
- }
- //viewHolder.image.setImageResource(imgId.get(position));
- viewHolder.text1.setText(symbolName.get(position));
- viewHolder.text2.setText(symbolName.get(position));
- return r;
- }
- class SymbolsActivity : SimpleActivity() {
- internal val allSymbols: ArrayList<ArrayList<String>> = ArrayList<ArrayList<String>>()
- internal var symbolNameArr: ArrayList<String> = ArrayList<String>()
- internal var symbolDescArr: ArrayList<String> = ArrayList<String>()
- internal var imgIdArr: ArrayList<String> = ArrayList<String>()
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_symbols)
- var lst: ListView = findViewById<ListView>(R.id.symbols_holder)
- lst.adapter
- //TODO BUILD SYMBOL ARRAY
- val allSymbols: ArrayList<ArrayList<String>> = loadSymbols()
- if (allSymbols != null) {
- for (i in allSymbols.indices) {
- symbolNameArr.add(allSymbols.get(i).get(0))
- symbolDescArr.add(allSymbols.get(i).get(1))
- imgIdArr.add(allSymbols.get(i).get(2))
- }
- }
- Log.v("Symbols", symbolNameArr.toString())
- var customListView = CustomListView(this, symbolNameArr, symbolDescArr, imgIdArr)
- lst.adapter = customListView;
- }
- override fun onResume() {
- super.onResume()
- }
- @Throws(IOException::class)
- fun loadSymbols(): ArrayList<ArrayList<String>> {
- val res = getResources()
- val `is` = res.openRawResource(R.raw.symbols)
- val sc = Scanner(`is`)
- val builder = StringBuilder()
- while (sc.hasNextLine()) {
- builder.append(sc.nextLine())
- }
- return parseJson(builder.toString())
- }
- private fun parseJson(s: String): ArrayList<ArrayList<String>> {
- val symbolsArr = ArrayList<ArrayList<String>>()
- try {
- val root = JSONObject(s)
- val symbolsJson = root.getJSONArray("symbols")
- for (i in 0 until symbolsJson.length()) {
- val singleSymbol = ArrayList<String>()
- val symbolObj = symbolsJson.getJSONObject(i)
- singleSymbol.add(symbolObj.getString("symbol_name"))
- singleSymbol.add(symbolObj.getString("symbol_desc"))
- singleSymbol.add(symbolObj.getString("symbol_img"))
- symbolsArr.add(singleSymbol)
- }
- } catch (e: JSONException) {
- e.printStackTrace()
- }
- return symbolsArr
- }
Add Comment
Please, Sign In to add comment