انجمن سایت کلیدستان



Adapter محتویات listView در کلاس برنامه نویسی اندرویدزمان کنونی: ۱۳۹۵/۰۹/۱۴، ۰۸:۵۰ ب.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: kousha.nikkar
آخرین ارسال: Michael.0858
پاسخ 6
بازدید 880

رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
Adapter محتویات listView در کلاس برنامه نویسی اندروید

Adapter محتویات listView در کلاس برنامه نویسی اندروید

#1
Question 
سلام

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

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

چجوری توی کلاس بنویسمش که گیر نده
پاسخ

Adapter محتویات listView در کلاس برنامه نویسی اندروید

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

کلید شماره 342


 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط kousha.nikkar ، sohrabjam

Adapter محتویات listView در کلاس برنامه نویسی اندروید

#3
Rainbow 
(۱۳۹۴/۰۵/۰۶, ۰۱:۴۱ ب.ظ)'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> 

 
پاسخ

Adapter محتویات listView در کلاس برنامه نویسی اندروید

#4
با سلام دوستان من یه مشکلی دارم
طرز استفاده دقیق از 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;
        }
    
    }
  
}
پاسخ

Adapter محتویات listView در کلاس برنامه نویسی اندروید

#5
(۱۳۹۴/۰۹/۰۸, ۰۱:۴۶ ب.ظ)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>
پاسخ

Adapter محتویات listView در کلاس برنامه نویسی اندروید

#6
(۱۳۹۴/۰۹/۰۸, ۰۴:۰۸ ب.ظ)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>

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


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

آخرین کلیدهای غیررایگان

شما هم می توانید کلیدهای غیررایگان منتشر کنید (بیشتر بدانید)