کلیدستان

نسخه‌ی کامل: Adapter محتویات listView در کلاس برنامه نویسی اندروید
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام

میخوام کد زیر رو توی کلاس بنویسم اما نمیدونم چیو باید تغییر بدم...
راهنمایی لطفاًااااااا

کد پی‌اچ‌پی:
// Adding items to listview
                   
adapter = new ArrayAdapter<String>(thisR.layout.list_search_itemR.id.subject_nameproducts);
                   
lv.setAdapter(adapter); 

چجوری توی کلاس بنویسمش که گیر نده
سلام.
کلمه this به Context اشاره دارد. بنابراین در یک کلاس (Class) دیگر، شناخته شده نیست. پس باید Context مربوط به Activity شامل ListView را به آن کلاس ارسال کرده و به جای کلمه this بنویسیم :

کلید شماره 342


 
(۱۳۹۴/۰۵/۰۶, ۰۱:۴۱ ب.ظ)'admin' نوشته: [ -> ]سلام.
کلمه this به Context اشاره دارد. بنابراین در یک کلاس (Class) دیگر، شناخته شده نیست. پس باید Context مربوط به Activity شامل ListView را به آن کلاس ارسال کرده و به جای کلمه this بنویسیم :

کلید شماره 342


 



 
سلام من یه تازه واردم امیدوارم که بتونیم اینجا مشکلمون رو در میون بذاریم و حلش کنیم
من یه listview نوشتم ولی اصلا اجرا نمی شه وقتی تو بلو استک اجراش می کنم یه صفحه سیاه مییاد و میره اصلا لیست رو نشون نمی ده
خیلی اسیر شدم اصلا نمی شه حلش کرد. لطفا کمک کنید.
ListView2Activity.java:
کد پی‌اچ‌پی:
package ir.androidcode.ListView2;

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;


public class 
ListView2Activity extends ListActivity {

    
/** Called when the activity is first created. */
    
@Override
    
public void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        
setContentView(R.layout.main);

        
ArrayAdapter<Stringstr =
                new 
ArrayAdapter<String>(this,
                        
android.R.layout.simple_list_item_1,
                        
getResources().getStringArray(R.array.daneshgah));
        
setListAdapter(str);
    }

main.xml:
کد پی‌اچ‌پی:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout> 
ListView2 Manifest:
کد پی‌اچ‌پی:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ir.androidcode.ListView2"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="15" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".ListView2Activity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest> 

 
با سلام دوستان من یه مشکلی دارم
طرز استفاده دقیق از arrayadapter رو نمیدونم
و از طرفی نمیدونم که ایا مقادیری که با جیسون میگیرم رو درست مقدار رهی میکنم یا نه لطفا کمک کنید...

کد:
public class Main extends Activity {
    
    private int term=1;
    private ListView listview;
    private ArrayList<String> list;
    private String[] json1,json2,json3;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        new getdata().execute();
        listview=(ListView)findViewById(R.id.listview);

    }

    public class getdata extends AsyncTask{

        ProgressDialog pd=new ProgressDialog(Main.this);

        @Override
        protected void onPreExecute() {
            pd.setMessage("Loading...");
            pd.show();
            super.onPreExecute();
        }

        @Override
        protected Object doInBackground(Object... args) {

            try {

                String data= URLEncoder.encode("term","UTF8")+"="+URLEncoder.encode(term+"","UTF8");
                URL link=new URL("http://hoseein.vvs.ir/html_public/wordpress/wp-app/term.php");
                URLConnection connect=link.openConnection();

                ///////////////send data////////////////

                connect.setDoOutput(true);
                OutputStreamWriter wr=new OutputStreamWriter(connect.getOutputStream());
                wr.write(data);
                wr.flush();

                BufferedReader reader=new BufferedReader(new InputStreamReader(connect.getInputStream()));

                StringBuilder sb=new StringBuilder();
                String line=null;
                while ((line=reader.readLine()) !=null){
                    sb.append(line);
                }
                list=new ArrayList<String>();

                JSONArray ja=new JSONArray(sb.toString());
                for(int i=0;i<ja.length();i++){
                    JSONObject jo=ja.getJSONObject(i);
                    json1[i]=(jo.getString("post_title"));
                    json2[i]=(jo.getString("post_content"));
                    json3[i]=(jo.getString("comment_count"));
                    /*
                    list.add(jo.getString("post_title"));
                    list.add(jo.getString("post_content"));
                    list.add(jo.getString("comment_count"));
                     */
                }

            }catch (Exception e){

            }

            return "";
        }

        @Override
        protected void onPostExecute(Object result) {

            if (result == "") {

                //ArrayAdapter<String> adapter=new ArrayAdapter<String>(Main.this,android.R.layout.simple_list_item_1,list);
                listview.setAdapter(new AI(Main.this, R.layout.main_row, android.R.layout.simple_list_item_1, json1));
                pd.dismiss();

            }

            super.onPostExecute(result);
        }
    }
    
        class AI extends ArrayAdapter<String>{

        public AI(Context context, int resource, int textViewResourceId,
                String[] objects) {
            super(context, resource, textViewResourceId, objects);
        }
        
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            
            LayoutInflater in=getLayoutInflater();
            View row=in.inflate(R.layout.main_row, parent ,false);
            
            TextView title=(TextView) row.findViewById(R.id.main_row_title);
            title.setText(json1[position]);
            TextView txt=(TextView) row.findViewById(R.id.main_row_content);
            txt.setText(json2[position]);
            TextView nazar=(TextView) row.findViewById(R.id.main_row_comment);
            nazar.setText(json3[position]);
            
            return row;
        }
    
    }
  
}
(۱۳۹۴/۰۹/۰۸, ۰۱:۴۶ ب.ظ)Michael.0858 نوشته: [ -> ]با سلام دوستان من یه مشکلی دارم
طرز استفاده دقیق از arrayadapter رو نمیدونم
و از طرفی نمیدونم که ایا مقادیری که با جیسون میگیرم رو درست مقدار رهی میکنم یا نه لطفا کمک کنید...

کد:
public class Main extends Activity {
    
    private int term=1;
    private ListView listview;
    private ArrayList<String> list;
    private String[] json1,json2,json3;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

       new getdata().execute();
       listview=(ListView)findViewById(R.id.listview);

   }

   public class getdata extends AsyncTask{

       ProgressDialog pd=new ProgressDialog(Main.this);

       @Override
       protected void onPreExecute() {
           pd.setMessage("Loading...");
           pd.show();
           super.onPreExecute();
       }

       @Override
       protected Object doInBackground(Object... args) {

           try {

               String data= URLEncoder.encode("term","UTF8")+"="+URLEncoder.encode(term+"","UTF8");
               URL link=new URL("http://hoseein.vvs.ir/html_public/wordpress/wp-app/term.php");
               URLConnection connect=link.openConnection();

               ///////////////send data////////////////

               connect.setDoOutput(true);
               OutputStreamWriter wr=new OutputStreamWriter(connect.getOutputStream());
               wr.write(data);
               wr.flush();

               BufferedReader reader=new BufferedReader(new InputStreamReader(connect.getInputStream()));

               StringBuilder sb=new StringBuilder();
               String line=null;
               while ((line=reader.readLine()) !=null){
                   sb.append(line);
               }
               list=new ArrayList<String>();

               JSONArray ja=new JSONArray(sb.toString());
               for(int i=0;i<ja.length();i++){
                   JSONObject jo=ja.getJSONObject(i);
                   json1[i]=(jo.getString("post_title"));
                   json2[i]=(jo.getString("post_content"));
                   json3[i]=(jo.getString("comment_count"));
                   /*
                   list.add(jo.getString("post_title"));
                   list.add(jo.getString("post_content"));
                   list.add(jo.getString("comment_count"));
                    */
               }

           }catch (Exception e){

           }

           return "";
       }

       @Override
       protected void onPostExecute(Object result) {

           if (result == "") {

               //ArrayAdapter<String> adapter=new ArrayAdapter<String>(Main.this,android.R.layout.simple_list_item_1,list);
               listview.setAdapter(new AI(Main.this, R.layout.main_row, android.R.layout.simple_list_item_1, json1));
               pd.dismiss();

           }

           super.onPostExecute(result);
       }
   }
   
       class AI extends ArrayAdapter<String>{

        public AI(Context context, int resource, int textViewResourceId,
                String[] objects) {
            super(context, resource, textViewResourceId, objects);
        }
       
       @Override
       public View getView(int position, View convertView, ViewGroup parent) {
           
           LayoutInflater in=getLayoutInflater();
           View row=in.inflate(R.layout.main_row, parent ,false);
           
           TextView title=(TextView) row.findViewById(R.id.main_row_title);
           title.setText(json1[position]);
            TextView txt=(TextView) row.findViewById(R.id.main_row_content);
            txt.setText(json2[position]);
            TextView nazar=(TextView) row.findViewById(R.id.main_row_comment);
            nazar.setText(json3[position]);
            
           return row;
       }
    
   }
 
}

این که برا من کار کرد


ListView3.java
کد:
package com.kelidestan.ListView3;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;


public class ListView3Activity extends Activity {

    ListView lv;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        lv = (ListView) findViewById(R.id.listView1);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, getResources().getStringArray(R.array.names));
        lv.setAdapter(adapter);

    }

}





values/cars.xml


کد:
<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string-array name="names">
       <item name="name_1">پراید</item>
       <item name="name_2">پژو 405</item>
       <item name="name_3">پژو 206</item>
       <item name="name_4">پژو پارس</item>
       <item name="name_5">سمند</item>
   </string-array>
</resources>
(۱۳۹۴/۰۹/۰۸, ۰۴:۰۸ ب.ظ)hoseinrahimi نوشته: [ -> ]
(۱۳۹۴/۰۹/۰۸, ۰۱:۴۶ ب.ظ)Michael.0858 نوشته: [ -> ]با سلام دوستان من یه مشکلی دارم
طرز استفاده دقیق از arrayadapter رو نمیدونم
و از طرفی نمیدونم که ایا مقادیری که با جیسون میگیرم رو درست مقدار رهی میکنم یا نه لطفا کمک کنید...

کد:
public class Main extends Activity {
    
    private int term=1;
    private ListView listview;
    private ArrayList<String> list;
    private String[] json1,json2,json3;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

       new getdata().execute();
       listview=(ListView)findViewById(R.id.listview);

   }

   public class getdata extends AsyncTask{

       ProgressDialog pd=new ProgressDialog(Main.this);

       @Override
       protected void onPreExecute() {
           pd.setMessage("Loading...");
           pd.show();
           super.onPreExecute();
       }

       @Override
       protected Object doInBackground(Object... args) {

           try {

               String data= URLEncoder.encode("term","UTF8")+"="+URLEncoder.encode(term+"","UTF8");
               URL link=new URL("http://hoseein.vvs.ir/html_public/wordpress/wp-app/term.php");
               URLConnection connect=link.openConnection();

               ///////////////send data////////////////

               connect.setDoOutput(true);
               OutputStreamWriter wr=new OutputStreamWriter(connect.getOutputStream());
               wr.write(data);
               wr.flush();

               BufferedReader reader=new BufferedReader(new InputStreamReader(connect.getInputStream()));

               StringBuilder sb=new StringBuilder();
               String line=null;
               while ((line=reader.readLine()) !=null){
                   sb.append(line);
               }
               list=new ArrayList<String>();

               JSONArray ja=new JSONArray(sb.toString());
               for(int i=0;i<ja.length();i++){
                   JSONObject jo=ja.getJSONObject(i);
                   json1[i]=(jo.getString("post_title"));
                   json2[i]=(jo.getString("post_content"));
                   json3[i]=(jo.getString("comment_count"));
                   /*
                   list.add(jo.getString("post_title"));
                   list.add(jo.getString("post_content"));
                   list.add(jo.getString("comment_count"));
                    */
               }

           }catch (Exception e){

           }

           return "";
       }

       @Override
       protected void onPostExecute(Object result) {

           if (result == "") {

               //ArrayAdapter<String> adapter=new ArrayAdapter<String>(Main.this,android.R.layout.simple_list_item_1,list);
               listview.setAdapter(new AI(Main.this, R.layout.main_row, android.R.layout.simple_list_item_1, json1));
               pd.dismiss();

           }

           super.onPostExecute(result);
       }
   }
   
       class AI extends ArrayAdapter<String>{

        public AI(Context context, int resource, int textViewResourceId,
                String[] objects) {
            super(context, resource, textViewResourceId, objects);
        }
       
       @Override
       public View getView(int position, View convertView, ViewGroup parent) {
           
           LayoutInflater in=getLayoutInflater();
           View row=in.inflate(R.layout.main_row, parent ,false);
           
           TextView title=(TextView) row.findViewById(R.id.main_row_title);
           title.setText(json1[position]);
            TextView txt=(TextView) row.findViewById(R.id.main_row_content);
            txt.setText(json2[position]);
            TextView nazar=(TextView) row.findViewById(R.id.main_row_comment);
            nazar.setText(json3[position]);
            
           return row;
       }
    
   }
 
}

این که برا من کار کرد


ListView3.java
کد:
package com.kelidestan.ListView3;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;


public class ListView3Activity extends Activity {

    ListView lv;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        lv = (ListView) findViewById(R.id.listView1);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, getResources().getStringArray(R.array.names));
        lv.setAdapter(adapter);

    }

}





values/cars.xml


کد:
<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string-array name="names">
       <item name="name_1">پراید</item>
       <item name="name_2">پژو 405</item>
       <item name="name_3">پژو 206</item>
       <item name="name_4">پژو پارس</item>
       <item name="name_5">سمند</item>
   </string-array>
</resources>

سوال من کلا یه چیز دیگست...
اطلاعات رو از سرور گرفتم اما نمیتونم به وسیله یک اداپتر توی یه لیست ویو نمایشش بدم