2015-06-22 217 views
-3

我需要做一個有關某些事件的議程。我有一個列表視圖,其中包含關於這個事件的所有標題,我爲此使用了json和mysql。列表視圖項目android

問題是我是新的android,我不知道該怎麼做,當我點擊一個事件標題有活動與關於這個事件的信息。

我有關於數據庫的信息。你可以幫我嗎?我需要這樣做自動。

我的代碼現在是這樣的:

package com.eu.agendamarinhagrande; 

import android.annotation.TargetApi; 
import android.app.ProgressDialog; 
import android.content.Intent; 
import android.os.AsyncTask; 
import android.os.Build; 
import android.support.v7.app.ActionBar; 
import android.support.v7.app.ActionBarActivity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.ListAdapter; 
import android.widget.ListView; 
import android.widget.SimpleAdapter; 
import android.widget.TextView; 

import com.eu.agendamarinhagrande.JSONParser; 
import com.eu.agendamarinhagrande.R; 

import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.NameValuePair; 
import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.params.HttpConnectionParams; 
import org.apache.http.params.HttpParams; 
import org.apache.http.protocol.HTTP; 
import org.apache.http.util.EntityUtils; 
import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import java.io.IOException; 
import java.io.UnsupportedEncodingException; 
import java.text.Normalizer; 
import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 
import java.util.regex.Pattern; 


public class MainActivity extends ActionBarActivity { 

    // Progress Dialog 
    private ProgressDialog pDialog; 

    // Creating JSON Parser object 
    // JSONParser jParser = new JSONParser(); 

    ArrayList<HashMap<String, String>> empresaList; 


    // url to get all products list 
    private static String url_all_empresas = "http://www.grifin.pt/projectoamg/Conexao.php"; 

    // JSON Node names 


    private static final String TAG_TITULO = "Titulo"; 


    // products JSONArray 
    String resultado = null; 

    ListView lista; 

    @TargetApi(Build.VERSION_CODES.HONEYCOMB) 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     // Hashmap para el ListView 
     empresaList = new ArrayList<HashMap<String, String>>(); 
     new Download().execute(); 
     // Cargar los productos en el Background Thread 

     lista = (ListView) findViewById(R.id.listView); 

     // ActionBar actionBar = getSupportActionBar(); 
     // actionBar.setDisplayHomeAsUpEnabled(true); 

    }//fin onCreate 


    public class Download extends AsyncTask<Void, Void, String> { 

     @Override 
     protected String doInBackground(Void... params) { 
      String out = null; 

      try { 
       DefaultHttpClient httpClient = new DefaultHttpClient(); 

       final HttpParams httpParameters = httpClient.getParams(); 

       HttpConnectionParams.setConnectionTimeout(httpParameters, 15000); 
       HttpConnectionParams.setSoTimeout(httpParameters, 15000); 

       HttpGet httpPost = new HttpGet(url_all_empresas); 

       HttpResponse httpResponse = httpClient.execute(httpPost); 
       HttpEntity httpEntity = httpResponse.getEntity(); 

       out = EntityUtils.toString(httpEntity, HTTP.UTF_8); 

      } catch (UnsupportedEncodingException e) { 
       e.printStackTrace(); 
      } catch (ClientProtocolException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

      return out; 
     } 


     @TargetApi(Build.VERSION_CODES.GINGERBREAD) 
     @Override 
     protected void onPostExecute(String result) { 
      super.onPostExecute(result); 

      ArrayList<String> list = new ArrayList<>(); 

      try { 
       JSONArray jsonArray = new JSONArray(result); 
       for (int i = 0; i < jsonArray.length(); i++) { 
        JSONObject jsa = jsonArray.getJSONObject(i); 
        String str = jsa.getString("Titulo"); 
        String data = jsa.getString("Datainicio"); 
        Log.e("TAG", str); 
        Log.e("TAG", data); 


        String s1 = Normalizer.normalize(str, Normalizer.Form.NFKD); 
        String regex = Pattern.quote("[\\p{InCombiningDiacriticalMarks}\\p{IsLm}\\p{IsSk}]+"); 

        str = new String(s1.replaceAll(regex, "").getBytes("ascii"), "ascii"); 

        list.add(str+"\n"+data); 

       } 

       ArrayAdapter adapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, list); 

       // updating listview 
       //setListAdapter(adapter); 
       lista.setAdapter(adapter); 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
} 

你明白我的代碼是葡萄牙的一些信息讓我爲你翻譯

Titulo-- Title 
Data---Date 
Descricao---Information about event 
Id_evento---Id_event 
Imagem---image 
+0

在這種情況下,請只是翻譯的源代碼,而不是有我們爲你做的。如果你想要一個答案,請用英語完全問你的問題,因爲在這個網站上講葡萄牙語的人不多。 – Dakkaron

+0

嘗試處理ListView onItemClickListener,並使用Intent extra將事件數據傳遞給其他活動。 –

+0

男人的問題是不是代碼是數據庫的MySQL和它不能做什麼 –

回答

2

你要你的ListView添加一個onItemClickListener。mylistview.setOnItemClickListener(this);

這是您活動的實例。請確保,您的活動正在實施onItemClickListener界面。

public class MainActivity extends Activity implements onItemClickListener{ 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main_activity); 

    listView= ((ListView) findViewById (R.id.list)); 
    listView.setOnItemClickListener (this); 
empresaList = new ArrayList<HashMap<String, String>>(); 
    new Download().execute(); 
//download data to empresaList arrayList , and on PostExeCutre 
// create a new adapter with it 
// set it to list 
    } 

    public void onItemClick (AdapterView<?> parent, View view, int position, long id) 
    { 
//do what you want in your code. 
    } 
} 

長,但很好的例子約onClickListeners: http://www.mkyong.com/android/android-listview-example/

+0

at onItemClick你可以抓住你的項目: list.get(position).getTitle();列表是您的列表,其中標題是您給適配器的標題。 – Karoly

+0

傢伙我去試試,如果我有一些問題,你能幫我嗎?我真的很喜歡一個android:c感謝^^ –

+0

首先,歡迎在Android上,其次確定我可以提供幫助。如果我的答案將幫助它,請接受它。如果我們需要更多的事情來討論,我會稍後將它們添加到我的答案中,以便您可以接受。 – Karoly