package com.example.colorselect;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private GridView color2019gv;
private Color2019Adapter Adapter2019;
private List<Color2019> color2019List;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
color2019gv = (GridView)findViewById(R.id.color2019gv);
color2019List = new ArrayList<Color2019>();
Adapter2019 = new Color2019Adapter(getApplicationContext(), color2019List);
color2019gv.setAdapter(Adapter2019);
color2019gv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Log.d("log", "클릭");
}
});
new BackgroundTask().execute();
}
class BackgroundTask extends AsyncTask<Void, Void, String>
{
String target;
@Override
protected void onPreExecute() {
target = "http://wngus457.cafe24.com/wngusdb/Trend2019.php";
}
@Override
protected String doInBackground(Void... voids) {
try{
Log.d("Try", "doInbackground실행");
URL url = new URL(target);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
InputStream inputStream = httpURLConnection.getInputStream();
Log.d("Try", "inputstream");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
Log.d("Try", "bufferedreader");
String temp;
StringBuilder stringBuilder = new StringBuilder();
while ((temp = bufferedReader.readLine()) != null){
stringBuilder.append(temp + "\n");
}
bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
return stringBuilder.toString().trim();
}
catch (Exception e){
Log.d("Try", "doInbackground catch실행");
e.printStackTrace();
}
Adapter2019.notifyDataSetChanged();
return null;
}
@Override
public void onProgressUpdate(Void... values){
super.onProgressUpdate();
}
@Override
public void onPostExecute(String result){
try{
Log.d("Try", "onPostExecute실행");
JSONObject jsonObject = new JSONObject(result);
JSONArray jsonArray = jsonObject.getJSONArray("response");
int count = 0;
String colorCode, colorName, colorNameEn;
while(count < jsonArray.length()){
JSONObject object = jsonArray.getJSONObject(count);
colorCode = object.getString("colorCode");
colorName = object.getString("colorName");
colorNameEn = object.getString("colorNameEn");
Color2019 color2019 = new Color2019(colorCode, colorName, colorNameEn);
color2019List.add(color2019);
Adapter2019.notifyDataSetChanged();
count++;
}
}
catch (Exception e){
Log.d("Try", "onPostExecute catch실행");
e.printStackTrace();
}
}
}
}
package com.example.colorselect;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import java.util.List;
public class Color2019Adapter extends BaseAdapter {
protected ColorDialog colorDialog;
private Context context;
private List<Color2019> color2019list;
public Color2019Adapter(Context context, List<Color2019> color2019list) {
this.context = context;
this.color2019list = color2019list;
}
@Override
public int getCount() {
return color2019list.size();
}
@Override
public Object getItem(int i) {
return color2019list.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(final int i, View view, final ViewGroup viewGroup) {
final View v = View.inflate(context, R.layout.trend_2019, null);
TextView colorName = (TextView)v.findViewById(R.id.colorName);
TextView colorNameEn = (TextView)v.findViewById(R.id.colorNameEn);
TextView colorCode = (TextView)v.findViewById(R.id.colorCode);
colorCode.setBackgroundColor(Color.parseColor(color2019list.get(i).getColorCode()));
colorName.setText(color2019list.get(i).getColorName());
colorName.setBackgroundColor(Color.parseColor(color2019list.get(i).getColorCode())); //텍스트 배경색도 같이 배경컬러로 변경
colorNameEn.setText(color2019list.get(i).getColorNameEn());
colorNameEn.setBackgroundColor(Color.parseColor(color2019list.get(i).getColorCode())); //텍스트 배경색도 같이 배경컬러로 변경
v.setTag(color2019list.get(i).getColorCode());
return v;
}
}
데이터베이스에서 컬러 코드를 받아서 적용시키는 방식으로 만든 앱인데 각 그리드 뷰를 클릭할 때마다 해당 색상이 보여지는 다이얼로그를 출력하고 싶은데 어디다 넣어야 할지 모르겠네요ㅠ 도와주세요!!