رفتن به مطلب
  • 0

مشکل در متوقف شدن برنامه


androidyas

سوال

سللام دوستان بنده میخوام  در دیتابیس یک فیلد از جنس varchar بسازم و در یک اکتیویتی فراخوانی کنم 

و یک قسمت لینک رو میگیره اگر فیلد مورد نظر 0 بود لینک پخش بشه و اگر 1 بود بره ب اکتیوتی پرداخت

اما برنامه بسته میشه و ارورش همونجاست که ایف گذاشتم و کد رو میزارم ببنید ایا درست است یا خیر

public void onClick(View view) {
    int num=Integer.parseInt(String.valueOf(type));
    if (num==0) {



        Intent i0 = new Intent(context, Play.class);
        i0.putExtra("id", id.get(position));
        i0.putExtra("name", name.get(position));
        i0.putExtra("artist", artist.get(position));
        i0.putExtra("picture", picture.get(position));
        i0.putExtra("link", link_mp3.get(position));
        context.startActivity(i0);
    }else {
        Intent aa=new Intent(context,payment.class);
        context.startActivity(aa);
    }
لینک ارسال
به اشتراک گذاری در سایت های دیگر

7 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

اولا کدهاتونو تو تگ کد قرار بدین تا بشه خوند اونا رو

public void onClick(View view) {
    int num=Integer.parseInt(String.valueOf(type));
    if (num==0) {
        Intent i0 = new Intent(context, Play.class);
        i0.putExtra("id", id.get(position));
        i0.putExtra("name", name.get(position));
        i0.putExtra("artist", artist.get(position));
        i0.putExtra("picture", picture.get(position));
        i0.putExtra("link", link_mp3.get(position));
        context.startActivity(i0);
    }else {
        Intent aa=new Intent(context,payment.class);
        context.startActivity(aa);
    }

این قسمت از کدتون کلا بی معنه چون متغیر type خودش اینتجر هست و نیاز به پارس نداره

  int num=Integer.parseInt(String.valueOf(type));

شرط رو به این صورت بنویسید

public void onClick(View view) {
    if (type==0) {
        Intent i = new Intent(context, Play.class);
        i.putExtra("id", id.get(position));
        i.putExtra("name", name.get(position));
        i.putExtra("artist", artist.get(position));
        i.putExtra("picture", picture.get(position));
        i.putExtra("link", link_mp3.get(position));
        context.startActivity(i);
    }else {
        Intent aa=new Intent(context,payment.class);
        context.startActivity(aa);
    }
}

متغیر position رو از کجا میگیرید؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 1 ساعت قبل، محمدرضا شاهپیری گفته است :

اولا کدهاتونو تو تگ کد قرار بدین تا بشه خوند اونا رو


public void onClick(View view) {
    int num=Integer.parseInt(String.valueOf(type));
    if (num==0) {
        Intent i0 = new Intent(context, Play.class);
        i0.putExtra("id", id.get(position));
        i0.putExtra("name", name.get(position));
        i0.putExtra("artist", artist.get(position));
        i0.putExtra("picture", picture.get(position));
        i0.putExtra("link", link_mp3.get(position));
        context.startActivity(i0);
    }else {
        Intent aa=new Intent(context,payment.class);
        context.startActivity(aa);
    }

این قسمت از کدتون کلا بی معنه چون متغیر type خودش اینتجر هست و نیاز به پارس نداره


  int num=Integer.parseInt(String.valueOf(type));

شرط رو به این صورت بنویسید


public void onClick(View view) {
    if (type==0) {
        Intent i = new Intent(context, Play.class);
        i.putExtra("id", id.get(position));
        i.putExtra("name", name.get(position));
        i.putExtra("artist", artist.get(position));
        i.putExtra("picture", picture.get(position));
        i.putExtra("link", link_mp3.get(position));
        context.startActivity(i);
    }else {
        Intent aa=new Intent(context,payment.class);
        context.startActivity(aa);
    }
}

متغیر position رو از کجا میگیرید؟

از یک اکتیوتی دیگر که اینگونه تعریف شده

   public static ArrayList<String> type = new ArrayList<>();
     
     
     
     
     
     
     ----------------------------------------------------------------
     for (int i = 0; i < data.length(); i++) {
                JSONObject object = data.getJSONObject(i);
                id.add(object.getString("id"));
                name.add(object.getString("name"));
                artist.add(object.getString("artist"));
                picture.add(object.getString("picture"));
                link_mp3.add(object.getString("link_128"));
                type.add(object.getString("type"));

 
لینک ارسال
به اشتراک گذاری در سایت های دیگر

کدهای هر دوتا اکتیویتیتونو قرار بدین

چیزی مشخص نیست الان

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 4 ساعت قبل، محمدرضا شاهپیری گفته است :

کدهای هر دوتا اکتیویتیتونو قرار بدین

چیزی مشخص نیست الان

package ovh.vpssd.music22.music;

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

import com.flaviofaria.kenburnsview.KenBurnsView;
import com.victor.loading.rotate.RotateLoading;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.ArrayList;

public class Splash extends AppCompatActivity {
    BufferedReader reader;
    RotateLoading rt;
    public static ArrayList<String> id = new ArrayList<>();
    public static ArrayList<String> name = new ArrayList<>();
    public static ArrayList<String> artist = new ArrayList<>();
    public static ArrayList<String> picture = new ArrayList<>();
    public static ArrayList<String> link_mp3 = new ArrayList<>();
    public static ArrayList<String> type = new ArrayList<>();

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

        KenBurnsView kbv = (KenBurnsView) findViewById(R.id.ken);
        kbv.resume();
        check();


    }

    private void check() {
        if (Connected()) {
            new get_dta_from_server().execute();
        } else {
            Dialog();
        }

    }

    private void Dialog() {

        AlertDialog.Builder builder = new AlertDialog.Builder(Splash.this);
        builder.setTitle("عدم اتصال به اینترنت");
        builder.setMessage("لطفا اتصال شبکه خود را بررسی نمایید.");
        builder.setIcon(R.mipmap.disconnect);
        builder.setPositiveButton("دوباره", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int i) {
                dialog.cancel();
                check();
            }
        });
        builder.setNegativeButton("خروج", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                dialogInterface.cancel();
                finish();
            }
        });
        AlertDialog dilog = builder.create();
        dilog.show();

    }

    private boolean Connected() {
        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo ni = cm.getActiveNetworkInfo();
        if (ni == null) {
            return false;
        } else {
            return true;
        }
    }

    public class get_dta_from_server extends AsyncTask<Void, Void, Void> {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            rt = (RotateLoading) findViewById(R.id.rotateloading);
            rt.start();
        }

        @Override
        protected Void doInBackground(Void... voids) {

            GetJsonData_();

            return null;
        }

        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            rt.stop();
            startActivity(new Intent(Splash.this,Main_Activity.class));
            finish();

        }
    }

    private void GetJsonData_() {
        String code = "1266";
        try {

            String getdata = URLEncoder.encode("pass", "UTF-8") + "=" + URLEncoder.encode(code, "UTF-8");
            URL url = new URL("http://vpsssd.ovh/data.php");
            URLConnection conn = url.openConnection();
            conn.setDoOutput(true);
            OutputStreamWriter wr=new OutputStreamWriter(conn.getOutputStream());
            wr.write(getdata);
            wr.flush();
            reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            String result = sb.toString();
            JSONObject json = new JSONObject(result);
            JSONArray data = json.getJSONArray("data");
            for (int i = 0; i < data.length(); i++) {
                JSONObject object = data.getJSONObject(i);
                id.add(object.getString("id"));
                name.add(object.getString("name"));
                artist.add(object.getString("artist"));
                picture.add(object.getString("picture"));
                link_mp3.add(object.getString("link_128"));
                type.add(object.getString("type"));



            }


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

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

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

package ovh.vpssd.music22.music;

import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.squareup.picasso.Picasso;
import static ovh.vpssd.music22.music.Splash.*;

/**
 * Created by hossein on 08/30/2016.
 */
class Adapter_frag1 extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    public Context context;
    public Adapter_frag1(Context cont){
        context=cont;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        final View view= LayoutInflater.from(context).inflate(R.layout.itemfeed,parent,false);

        return new CellFeedViewHolder(view);
    }


    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder viewholder, final int position) {
        final CellFeedViewHolder holder =(CellFeedViewHolder) viewholder;
        Picasso.with(context).load(picture.get(position)).into(holder.image);
        holder.name.setText(name.get(position));
        holder.artist.setText(artist.get(position));
        holder.card.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                if (type==0) {



                Intent i0 = new Intent(context, Play.class);
                i0.putExtra("id", id.get(position));
                i0.putExtra("name", name.get(position));
                i0.putExtra("artist", artist.get(position));
                i0.putExtra("picture", picture.get(position));
                i0.putExtra("link", link_mp3.get(position));
                context.startActivity(i0);
            }else {
                    Intent aa=new Intent(context,payment.class);
                    context.startActivity(aa);
                }


            }
        });

    }





    public  void updateItems(){
        notifyDataSetChanged();
    }
    @Override
    public int getItemCount() {
        return id.size();
    }

    private class CellFeedViewHolder extends RecyclerView.ViewHolder {
        ImageView image;
        TextView name,artist;
        CardView card;
        public CellFeedViewHolder(View view) {
            super(view);
            image= (ImageView) view.findViewById(R.id.img);
            name= (TextView) view.findViewById(R.id.namesong);
            artist= (TextView) view.findViewById(R.id.nameartist);
            card= (CardView) view.findViewById(R.id.card);
        }
    }
}

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شتر با بارش تو این کدها گم میشه :fekr: یکم منظم تر کد نویسی کنی عزیز

کدنویسیتون کلا  ناشیانه اس دوست عزیز

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

این از این

شما اومدین شیش تا آرایه تعریف کردین :unknown: در حالی اصولیش یه کلاس و یه آرایه از جنس اون کلاس بود

به نظر من بهتره آموزشاییی که تو سایت هست رو کامل مطالعه کنید تا با مفاهیم اولیه و اصول رو کامل درک کنید اینجوری سریعتر پیشرفت میکنید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

مردم پولاشونو چه جاهایی خرج میکنن:fekr::malih:

این سورس ارزش وقت گذاشتن نداره هموطن

این جوری که من فهمیدم از کدهاتون شما میخواین یه سری آهنگ رو با توجه به نام خواننده و لیستشون تو یه ریسایکلر ویو نمایش بدین

تو سایت همه این آموزشا هست تو قسمت اندروید استودیو و آموزشهای تصویری بگردین بیشتر از اون چیزی که میخواین رو پیدا میکنید

هم آموزش ریسایکلر ویو هست

هم اموزش جیسون هست

هم آموزش volly هست

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

واسه خریدای بعدی هم دقت بیشتری به خرج بدین و واسه چیزی که ارزش داره پول بدین:53:

موفق باشید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

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

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...