Advertisement
thelaws98

Work1

May 28th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.55 KB | None | 0 0
  1. package com.example.user.assignment10;
  2.  
  3. import android.graphics.drawable.Drawable;
  4. import android.os.Bundle;
  5. import android.support.v7.app.AppCompatActivity;
  6. import android.view.View;
  7. import android.widget.Button;
  8. import android.widget.GridView;
  9. import android.widget.ImageView;
  10. import android.widget.Toast;
  11.  
  12. import com.example.user.assignment10.Adapter.GridViewAnswerAdapter;
  13. import com.example.user.assignment10.Adapter.GridViewSuggestAdapter;
  14. import com.example.user.assignment10.Common.Common;
  15.  
  16. import java.util.ArrayList;
  17. import java.util.Collections;
  18. import java.util.List;
  19. import java.util.Random;
  20.  
  21. public abstract class MainActivity extends AppCompatActivity implements View.OnClickListener {
  22.  
  23.  
  24.     public GridViewAnswerAdapter answerAdapter;
  25.     public List<String> suggestSource = new ArrayList<>();
  26.     public GridViewSuggestAdapter suggestAdapter;
  27.     public Button btnSubmit;
  28.     public GridView gridViewAnswer, gridViewSuggest;
  29.     public ImageView imageViewQuestion;
  30.  
  31.     /*ArrayList<Integer> pictures;
  32.  
  33.     {
  34.         pictures = new ArrayList <Integer>() {
  35.  
  36.  
  37.             R.drawable.crane;
  38.             R.drawable.cross;
  39.             R.drawable.date;
  40.             R.drawable.funnel;
  41.             R.drawable.pair;
  42.             R.drawable.sign;
  43.             R.drawable.snow;
  44.             R.drawable.trip;
  45.             R.drawable.zebra;
  46.  
  47.         };
  48.  
  49.     }*/
  50.  
  51.     // hidden first ArrayList <Integer> image_list ;
  52.  
  53.  
  54.     public char[] answer;
  55.  
  56.     String correct_answer;
  57.  
  58.  
  59.     @Override
  60.     protected void onCreate(Bundle savedInstanceState) {
  61.         super.onCreate(savedInstanceState);
  62.         setContentView(R.layout.activity_main);
  63.  
  64.         //Init  View
  65.  
  66.        // myList.add(R.drawable.crane);
  67.        ArrayList<> image_list = new ArrayList <> () {
  68.             {
  69.                 add(getDrawable(R.drawable.crane)) ;
  70.                 add(getDrawable(R.drawable.cross)) ;
  71.                 add(getDrawable(R.drawable.date)) ;
  72.                 add(getDrawable(R.drawable.funnel)) ;
  73.                 add(getDrawable(R.drawable.pair)) ;
  74.                 add(getDrawable(R.drawable.sign)) ;
  75.                 add(getDrawable(R.drawable.snow)) ;
  76.                 add(getDrawable(R.drawable.trip)) ;
  77.                 add(getDrawable(R.drawable.zebra)) ;
  78.  
  79.                 /*add(R.drawable.crane);
  80.                 add(R.drawable.cross);
  81.                 add(R.drawable.date);
  82.                 add(R.drawable.funnel);
  83.                 add(R.drawable.pair);
  84.                 add(R.drawable.sign);
  85.                 add(R.drawable.snow);
  86.                 add(R.drawable.trip);
  87.                 add(R.drawable.zebra);
  88.                 */
  89.             }
  90.  
  91.         };
  92.  
  93.         initView();
  94.  
  95.  
  96.  
  97.  
  98.     }
  99.  
  100.     private void initView() {
  101.         gridViewAnswer = findViewById(R.id.gridViewAnswer);
  102.         gridViewSuggest = findViewById(R.id.gridViewSuggest);
  103.  
  104.         imageViewQuestion = findViewById(R.id.image);
  105.  
  106.         //add setuplist method here to generate image question and setuplist
  107.         // when app start
  108.         setupList();
  109.  
  110.         btnSubmit = findViewById(R.id.btnSubmit);
  111.         btnSubmit.setOnClickListener(new View.OnClickListener() {
  112.             @Override
  113.             public void onClick(View v) {
  114.                 String result="";
  115.                 for(int i=0;i< Common.user_submit_answer.length;i++)
  116.                     result += String.valueOf(Common.user_submit_answer[i]);
  117.              //Here we will convert char array to string, so we can use loop
  118.                 // or use String constructor to do that
  119.                 // if user submit equals correct answer, it will go to the next question
  120.  
  121.  
  122.                 if (result.equals(correct_answer))
  123.                 {
  124.                     Toast.makeText(getApplicationContext(), String.format("Congrats,you got it right! This is%s", result),Toast.LENGTH_SHORT).show();
  125.                     //Reset
  126.                     Common.count=0;
  127.                     Common.user_submit_answer= new char[correct_answer.length()];
  128.  
  129.                     //Set Adapter
  130.                     GridViewAnswerAdapter answerAdapter = new GridViewAnswerAdapter(setupNullList(),getApplicationContext());
  131.                     gridViewAnswer.setAdapter(answerAdapter);
  132.                     answerAdapter.notifyDataSetChanged();
  133.                     GridViewSuggestAdapter suggestAdapter = new GridViewSuggestAdapter(suggestSource,getApplicationContext(),MainActivity.this);
  134.                     gridViewSuggest.setAdapter(suggestAdapter);
  135.                     suggestAdapter.notifyDataSetChanged();
  136.  
  137.                     setupList();
  138.                     }
  139.                     else
  140.                 {
  141.                     Toast.makeText(MainActivity.this,"Incorrect!!!",Toast.LENGTH_SHORT).show();
  142.                 }
  143.             }
  144.         });
  145.     }
  146.  
  147.     private void setupList() {
  148.         //Here we will setup Suggest character list, and image
  149.         //Random image
  150.         Random random = new Random();
  151.         int imageSeleced = image_list[random.nextInt(image_list.length)]; // HERE ERROR
  152.         imageViewQuestion.setImageResource(imageSeleced);
  153.  
  154.         correct_answer = getResources().getResourceName(imageSeleced);
  155.         correct_answer = correct_answer.substring(correct_answer.lastIndexOf("/")+1);
  156.  
  157.         answer = correct_answer.toCharArray();
  158.         Common.user_submit_answer = new char[answer.length];
  159.  
  160.         //Adding Answer character to List
  161.         suggestSource.clear();
  162.         for(char item:answer)
  163.         {
  164.             //converting correct answers to character and adding to list suggest
  165.             suggestSource.add(String.valueOf(item));
  166.         }
  167.         //Random add some character to list
  168.         for(int i= answer.length;i<answer.length*2;i++)
  169.             //random some characters from alphabet list and add to our suggest list
  170.         suggestSource.add(Common.alphabet_character[random.nextInt(Common.alphabet_character.length)]);
  171.  
  172.         //Sort random list
  173.         Collections.shuffle(suggestSource);
  174.         //set for GridView
  175.         answerAdapter = new GridViewAnswerAdapter(setupNullList(),this);
  176.         suggestAdapter = new GridViewSuggestAdapter(suggestSource,this,this);
  177.         answerAdapter.notifyDataSetChanged();
  178.         suggestAdapter.notifyDataSetChanged();
  179.         gridViewSuggest.setAdapter(suggestAdapter);
  180.         gridViewAnswer.setAdapter(answerAdapter);
  181.     }
  182.  
  183.     //NULL CHAR ARRAY
  184.     private char[] setupNullList() {
  185.         char result[] = new char[answer.length];
  186.         for(int i=0;i<answer.length;i++)
  187.             result[i]=' ';
  188.         return result;
  189.         }
  190. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement