"statusspp"の結果がSPP、カラーテキストビューが赤色、 "statusspp"の結果がSP2Dの場合、Json結果に基づいて変更カラーテキストビューを作成したいカラーのテキストビューは緑色になります。ここでJson結果に基づいてカラーテキストビューを変更する方法
私のコードです:
package com.example.rizki.sp2dsearch;
import android.graphics.Color;
import android.os.Bundle;
import java.util.ArrayList;
import java.util.HashMap;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.EditText;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
import static com.example.rizki.sp2dsearch.R.id.text;
import static com.example.rizki.sp2dsearch.R.id.textLat;
public class Search extends ListActivity {
EditText editSearch;
private static final String TAG_TOILETS = "toilets";
private static final String TAG_NPWP = "npwp";
private static final String TAG_NOSPP = "nospp";
//private static final String TAG_TYPE = "type";
private static final String TAG_STATUSSPP = "statusspp";
private static final String TAG_TGLSP2D = "tglsp2d";
private static final String TAG_JUMLAH = "jumlahtotal";
//web service milik saya, silakan pakai untuk latihan
//url untuk melakukan get, parameter name saya kosongkan untuk nantinya diisi dengan keywords tertentu
private static String url= "http://ditkeu.unair.ac.id/andro/carisp2d.php?npwp=";
//urlget digunakan untuk url full yang dipanggil , url+keywords
private static String urlget= "";
static boolean a=false;
JSONArray toilets = null;
//deklarasi progressdialog
ProgressDialog pDialog;
ArrayList<HashMap<String, String>> toiletList = new ArrayList<HashMap<String, String>>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
}
public void searchtoi(View view)
{
editSearch = (EditText) findViewById(R.id.edit1);
//Mengambil keywords, dijadikan string
String src = editSearch.getText().toString();
urlget=url+src;
//Log.e("a",urlget);
new JSONParse().execute();
}
private class JSONParse extends AsyncTask<String, String, JSONObject> {
@Override
//Menampilkan progress dialog
protected void onPreExecute(){
super.onPreExecute();
pDialog = new ProgressDialog(Search.this);
pDialog.setMessage("Tunggu ya ...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected JSONObject doInBackground(String... args)
{
//Membuat JSON Parser instance
JSONParser jParser = new JSONParser();
//mengambil JSON String dari urlget, url+keywords
JSONObject json = jParser.getJSONFromUrl(urlget);
if(json==null)
{
a=false;
}
else a=true;
return json;
}
@Override
protected void onPostExecute(JSONObject json) {
if(a==true)
{
try{
Log.e("status",a+"");
//mengambil array toilets
toilets = json.getJSONArray(TAG_TOILETS);
//loop pada toilets
for(int i=0; i<toilets.length();i++)
{
JSONObject a = toilets.getJSONObject(i);
//simpan di variable
String nospp = a.getString(TAG_NOSPP);
String npwp = a.getString(TAG_NPWP);
//String type = a.getString(TAG_TYPE);
String statusspp = a.getString(TAG_STATUSSPP);
String tglsp2d = a.getString(TAG_TGLSP2D);
String jumlahtotal = a.getString(TAG_JUMLAH);
Log.e("npwp",npwp);
//buat hashmap baru untuk store String
HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_NOSPP, nospp);
map.put(TAG_NPWP, npwp);
map.put(TAG_STATUSSPP, statusspp);
map.put(TAG_TGLSP2D, tglsp2d);
map.put(TAG_JUMLAH, jumlahtotal);
toiletList.add(map);
//ProgressDialog dihilangkan jika sudah selesai mengambil data
pDialog.dismiss();
tampilkandata();
}
}catch(JSONException e)
{
e.printStackTrace();
}
}else {
Toast.makeText(getApplicationContext(), "error getting data", Toast.LENGTH_SHORT).show();
pDialog.dismiss();
Log.e("status",a+"");}
}
}
public void tampilkandata()
{
//membuat ListView dari data JSON yang ada
ListAdapter adapter = new SimpleAdapter(this, toiletList,
R.layout.list_view,
new String[]{TAG_NPWP, TAG_STATUSSPP, TAG_TGLSP2D, TAG_JUMLAH}, new int[]{
R.id.name,R.id.latitude, R.id.longitude,R.id.price});
setListAdapter(adapter);
// selecting single ListView item
ListView lv=getListView();
// Memberikan Event Click Listener pada List View
lv.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
//Mengambil nilai dari ListView yang di Click
String npwp = ((TextView) view.findViewById(R.id.name)).getText().toString();
String statusspp = ((TextView) view.findViewById(R.id.latitude)).getText().toString();
String tglsp2d = ((TextView) view.findViewById(R.id.longitude)).getText().toString();
String jumlahtotal = ((TextView) view.findViewById(R.id.price)).getText().toString();
//Membuat intent untuk menampilkan activity Detail
//Selain itu Intent ini juga digunakan untuk mengirimkan suatu data
Intent i = new Intent(getApplicationContext(), Detail.class);
//Memasukkan data yang akan dikirimkan melalui intent
i.putExtra(TAG_NPWP, npwp);
i.putExtra(TAG_STATUSSPP, statusspp);
i.putExtra(TAG_TGLSP2D, tglsp2d);
i.putExtra(TAG_JUMLAH, jumlahtotal);
startActivity(i);
//Menampilkan data dari ListView yang di Click dalam bentuk popup
//Toast.makeText(getApplicationContext(), "toilet "+name, Toast.LENGTH_SHORT).show();
}
});
}
}
を再利用することができますそのコードは? –
あなたはcolor.provided uを大文字と小文字の値を設定したいと思っていますが、あなたのコードでは、どのtextviewとどこでこのアクションを実行したいのかは完全にはっきりしていません。 – Ak9637