Farzad Sarseifi

مدیریت انجمن
  • تعداد ارسال ها

    1,572
  • تاریخ عضویت

  • آخرین بازدید

  • Days Won

    69

Farzad Sarseifi last won the day on مارچ 21

Farzad Sarseifi had the most liked content!

اعتبار در انجمن

265 Excellent

درباره Farzad Sarseifi

  • درجه
    برنامه نویس ارشد اندروید

Converted

  • website
    http://p30droid.com/
  1. بهتره مقدار قبلی رو در SharedPrefrences ذخیره کنید و وقتی صفحه لود میشه این مقدار رو بخونید.چون وقتی اکتیویتی بسته میشه مقادیرش Kill میشوند
  2. چند روز صبر کنید بخاطر تعطیلات نوروزی بعضی قسمت های بازار غیر فعال شده است. بعد از روز ششم و یا هفتم فروردین دوباره باز خواهد شد
  3. ورژن جاوایی که نصب کردید کدام است ؟ این دستور رو در cmd وارد نمایید java -version
  4. از منوی Help گزینه check for update رو انتخاب کنید
  5. کدام ورژن اندروید استودیو رو نصب کردید و همچنین ورژن Gradle چند میباشد‌؟
  6. این خطا میگه ورژن اندروید استودیو و Gradle با هم سازگار نیستند.یا IDE و یا Gradle خودتون رو اپدیت کنید
  7. در این آموزش قصد داریم یک لیست از اطلاعات را با استفاده از RecyclerView ایجاد کنیم که سطرهای قابلیت انتخاب و تغییر شدن را داشته باشند Gradle compile 'com.android.support:recyclerview-v7:23.0.0' activity_recycle_view_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".RecycleViewMainActivity"> <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="vertical" /> </RelativeLayout> list_item_row.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/list_row" android:layout_width="match_parent" android:layout_height="wrap_content" android:clickable="true" android:orientation="vertical"> <LinearLayout android:id="@+id/linear" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:id="@+id/plantImageView" android:layout_width="100dp" android:layout_height="100dp" android:scaleType="fitXY" android:src="@mipmap/ic_launcher" /> <LinearLayout android:id="@+id/innerLayout" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_margin="5dp" android:layout_weight="0.9" android:orientation="vertical"> <TextView android:id="@+id/personNameTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:fontFamily="sans-serif-light" android:singleLine="true" android:textColor="#5B5B5B" android:textSize="16dp" android:textStyle="bold" /> <TextView android:id="@+id/personDsgTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:fontFamily="sans-serif-light" android:singleLine="true" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="#787878" /> <TextView android:id="@+id/personAddTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:fontFamily="sans-serif-light" android:singleLine="true" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="#787878" /> </LinearLayout> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_below="@+id/linear" android:background="#787878" /> </RelativeLayout> RecycleViewMainActivity.java import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import java.util.ArrayList; public class RecycleViewMainActivity extends AppCompatActivity { private ArrayList<Person> mPersonList; private RecyclerView mRecyclerView; private CustomAdapter mAdapter; private RecyclerView.LayoutManager mLayoutManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_recycle_view_main); mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view); // use this setting to improve performance if you know that changes // in content do not change the layout size of the RecyclerView mRecyclerView.setHasFixedSize(true); // use a linear layout manager mLayoutManager = new LinearLayoutManager(getApplicationContext()); mRecyclerView.setLayoutManager(mLayoutManager); mRecyclerView.addOnItemTouchListener( new RecyclerItemClickListener(getApplicationContext(), new RecyclerItemClickListener.OnItemClickListener() { @Override public void onItemClick(View view, int position) { try { mAdapter.setSelected(position); } catch (Exception e) { e.printStackTrace(); } } }) ); setupPersonList(); } private void setupPersonList() { mPersonList = new ArrayList<Person>(); mPersonList.clear(); for (int i = 0; i < 25; i++) { Person person = new Person("Person " + i, "Desgination " + i, "Address " + i); mPersonList.add(person); } mAdapter = new CustomAdapter(mPersonList, this); mRecyclerView.setAdapter(mAdapter); } } RecyclerItemClickListener.java import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.View; public class RecyclerItemClickListener implements RecyclerView.OnItemTouchListener { private OnItemClickListener mListener; public interface OnItemClickListener { public void onItemClick(View view, int position); } GestureDetector mGestureDetector; public RecyclerItemClickListener(Context context, OnItemClickListener listener) { mListener = listener; mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { @Override public boolean onSingleTapUp(MotionEvent e) { return true; } }); } @Override public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) { View childView = view.findChildViewUnder(e.getX(), e.getY()); if (childView != null && mListener != null && mGestureDetector.onTouchEvent(e)) { mListener.onItemClick(childView, view.getChildPosition(childView)); return true; } return false; } @Override public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { } @Override public void onTouchEvent(RecyclerView view, MotionEvent motionEvent) { } } CustomAdapter.java import android.content.Context; import android.content.SharedPreferences; import android.graphics.Color; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.RelativeLayout; import android.widget.TextView; import java.util.ArrayList; public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.ViewHolder> { private ArrayList<Person> mPersonList; private SharedPreferences mPref; private SharedPreferences.Editor mEditor; // Provide a reference to the views for each data item // Complex data items may need more than one view per item, and // you provide access to all the views for a data item in a view holder public class ViewHolder extends RecyclerView.ViewHolder { // each data item is just a string in this case TextView personNameTextView, personAddTextView, personDsgTextView; RelativeLayout list_row; public ViewHolder(View v) { super(v); personNameTextView = (TextView) v.findViewById(R.id.personNameTextView); personAddTextView = (TextView) v.findViewById(R.id.personAddTextView); personDsgTextView = (TextView) v.findViewById(R.id.personDsgTextView); list_row = (RelativeLayout) v.findViewById(R.id.list_row); } } public void add(int position, Person item) { mPersonList.add(position, item); notifyItemInserted(position); } public void remove(String item) { int position = mPersonList.indexOf(item); mPersonList.remove(position); notifyItemRemoved(position); } // Provide a suitable constructor (depends on the kind of dataset) public CustomAdapter(ArrayList<Person> personList, Context context) { mPersonList = personList; mPref = context.getSharedPreferences("person", Context.MODE_PRIVATE); mEditor = mPref.edit(); } // Create new views (invoked by the layout manager) @Override public CustomAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { // create a new view View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_row, parent, false); // set the view's size, margins, paddings and layout parameters ViewHolder vh = new ViewHolder(v); return vh; } // Replace the contents of a view (invoked by the layout manager) @Override public void onBindViewHolder(ViewHolder holder, int position) { // - get element from your dataset at this position // - replace the contents of the view with that element holder.personNameTextView.setText(mPersonList.get(position).getPersonName()); holder.personAddTextView.setText(mPersonList.get(position).getPersonAdd()); holder.personDsgTextView.setText(mPersonList.get(position).getPersonDsg()); Log.e("selection", "" + mPersonList.get(position).isSelected()); if (mPersonList.get(position).isSelected()) { holder.list_row.setBackgroundColor(Color.parseColor("#d5d5d5")); } else { holder.list_row.setBackgroundColor(Color.TRANSPARENT); } } public void setSelected(int pos) { try { if (mPersonList.size() > 1) { mPersonList.get(mPref.getInt("position", 0)).setSelected(false); mEditor.putInt("position", pos); mEditor.commit(); } mPersonList.get(pos).setSelected(true); notifyDataSetChanged(); } catch (Exception e) { e.printStackTrace(); } } // Return the size of your dataset (invoked by the layout manager) @Override public int getItemCount() { return mPersonList.size(); } } Person.java public class Person { String personName; String personAdd; String personDsg; boolean selected; Person(String name, String dsg, String add) { this.personName = name; this.personAdd = add; this.personDsg = dsg; } public boolean isSelected() { return selected; } public void setSelected(boolean selected) { this.selected = selected; } public String getPersonDsg() { return personDsg; } public void setPersonDsg(String personDsg) { this.personDsg = personDsg; } public String getPersonAdd() { return personAdd; } public void setPersonAdd(String personAdd) { this.personAdd = personAdd; } public String getPersonName() { return personName; } public void setPersonName(String personName) { this.personName = personName; } }
  8. فقط بنویسید context=getApplicationContext();
  9. چندی قبل گوگل نسخه پیش نمایش توسعه دهندگان اندروید O را منتشر کرد که در واقع نخستین توزیع قابل دانلود از آن برای عموم محسوب می شود. البته قبل از آنکه بیش از اندازه هیجان زده شوید باید خاطرنشان کنیم که طبق اعلام گوگل این نسخه صرفا برای توسعه دهندگان منتشر شده و «برای استفاده روزانه یا کاربری» مناسب نیست. اولین پیش نمایش توسعه دهندگان اندروید جدید درست مانند هر ورژن دیگری که برای این قشر از کاربران عرضه می شود مملو از باگ است و «با مشکلات متعددی به لحاظ عملکرد و ثبات» روبروست. گفتنی است این ورژن از اندروید روی دستگاه های زیر قابل نصب خواهد بود: پیکسل و پیکسل اکس ال، پیکسل سی گوگل، نکسوس ۶ پی، نکسوس ۵ اکس و نکسوس پلیر. برای دانلود ایمیج های این نسخه نیز می توانید از طریق این لینک اقدام نمایید و هشدارهای انتشار آن (شامل لیست طولانی از باگ ها) را هم می توانید از طریق این لیست دریافت نمایید. خلاصه کلام اینکه حالا می توانید به شمایی کلی از امکانات و قابلیت های نسخه نهایی اندروید O دست پیدا کنید هرچند که هنوز نام اصلی آن مشخص نشده. در زیر فهرستی خلاصه وار از امکانات و قابلیت های این نسخه از اندروید را ملاحظه می کنید: نوتیفیکیشن های پیشرفته (کاربران به کنترل بالایی روی انواع مختلف اعلان دست پیدا می کنند) محدودیت های پس زمینه اپلیکیشن ها (برای بهبود عمر باتری) نمایشگر تصویر در تصویر (با فراهم نمودن امکاناتی شامل مشاهده ویدیو در حین چت یا استفاده از دیگر اپلیکیشن ها) آیکون های قابل انطباق وسعت رنگ زیاد برای اپلیکیشن ها پشتیبانی از کدک های صدای بلوتوثی باکیفیت همانطور که گفته شد این نسخه از اندروید صرفا برای توسعه دهندگان منتشر شده با این همه در دسترس بودن آن نشانه ایست بر اینکه کاربران معمولی این سیستم عامل نیز به زودی می توانند از اندروید O استفاده نمایند. منبع : http://dgto.ir/g28
  10. نباید مشکل خاصی باشه،مگر اینکه اشتباهی کدی اضافی نوشته باشید
  11. روی دیوایس هم تست کردید این مورد رو یا فقط جنی موشن ؟
  12. چرا نوشتید context.getApplicationContext ؟؟
  13. کدوم نقطه میتونید مشخصش کنید دقیق کجای تصویر منظورتونه؟
  14. لاگ ارور رو بزارید بررسی کنیم مشکل رو