意图进行新活动时Android App崩溃

时间:2015-05-29 12:56:27

标签: java android android-intent

我需要帮助才能找出为什么它不会进入下一个活动(例如R.id.Signin_Btn),我在另一个Activity中遇到了这个问题,这个问题在本课程完成之前完全正常工作。

我已经通过并检查了所有内容,无法找到解决此问题的方法。

public class Login extends ActionBarActivity implements View.OnClickListener {

ArrayList<Driver> DriverArrayList;
DriverAdapter Dadapter;
ArrayList<Vehicle> VehicleArrayList;
VehicleAdapter Vadapter;
ArrayList<Plot> PlotArrayList;
PlotAdapter Padapter;


ImageButton Driver_Btn;
ImageButton Vehicle_Btn;
ImageButton Plot_Btn;
Button Signin_Btn;
private Intent myIntent;

private int DriverID = 0;
private int VehicleID = 0;
private int PlotID = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    Driver_Btn = (ImageButton) findViewById(R.id.Select_Driver);
    Driver_Btn.setOnClickListener(this);

    Vehicle_Btn = (ImageButton) findViewById(R.id.Select_Vehicle);
    Vehicle_Btn.setOnClickListener(this);
    Plot_Btn = (ImageButton) findViewById(R.id.Select_Plot);
    Plot_Btn.setOnClickListener(this);

    Signin_Btn = (Button) findViewById(R.id.Signin_Btn);
    Signin_Btn.setOnClickListener(this);

    //ArrayList
    DriverArrayList = new ArrayList<Driver>();
    VehicleArrayList = new ArrayList<Vehicle>();
    PlotArrayList = new ArrayList<Plot>();

    new JSONAsyncTask().execute("N/A");
    ListView DlistView = (ListView) findViewById(R.id.DriverList);
    ListView VlistView = (ListView) findViewById(R.id.VehicleList);
    ListView PlistView = (ListView) findViewById(R.id.PlotList);

    Dadapter = new DriverAdapter(getApplicationContext(), R.layout.driver_row, DriverArrayList);
    Vadapter = new VehicleAdapter(getApplicationContext(), R.layout.vehicle_row, VehicleArrayList);
    Padapter = new PlotAdapter(getApplicationContext(), R.layout.plot_row, PlotArrayList);


    DlistView.setAdapter(Dadapter);
    VlistView.setAdapter(Vadapter);
    PlistView.setAdapter(Padapter);
    Driver_Btn.setBackgroundColor(Color.GREEN);

    DlistView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id) {
            ListView VehicleListView = (ListView) findViewById(R.id.VehicleList);
            DriverID = DriverArrayList.get(position).getID();
            ResetButtonColours();
            arg1.setSelected(true);

            Vehicle_Btn.setBackgroundColor(Color.GREEN);
            VehicleListView.setVisibility(View.VISIBLE);

            //Toast.makeText(getApplicationContext(), DriverArrayList.get(position).getName(), Toast.LENGTH_LONG).show();
        }
    });
    VlistView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id) {
            VehicleID = VehicleArrayList.get(position).getID();
            ListView PlotListView = (ListView) findViewById(R.id.PlotList);
            ResetButtonColours();
            Plot_Btn.setBackgroundColor(Color.GREEN);
            PlotListView.setVisibility(View.VISIBLE);
            //Toast.makeText(getApplicationContext(), DriverArrayList.get(position).getName(), Toast.LENGTH_LONG).show();
        }
    });
    PlistView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id) {
            PlotID = PlotArrayList.get(position).getID();
        }
    });


}

private void ResetButtonColours() {
    ListView DriverListView = (ListView) findViewById(R.id.DriverList);
    ListView VehicleListView = (ListView) findViewById(R.id.VehicleList);
    ListView PlotListView = (ListView) findViewById(R.id.PlotList);
    DriverListView.setVisibility(View.GONE);
    VehicleListView.setVisibility(View.GONE);
    PlotListView.setVisibility(View.GONE);
    Driver_Btn.setBackgroundColor(Color.TRANSPARENT);
    Vehicle_Btn.setBackgroundColor(Color.TRANSPARENT);
    Plot_Btn.setBackgroundColor(Color.TRANSPARENT);
}

@Override
public void onClick(View v) {
    ListView DriverListView = (ListView) findViewById(R.id.DriverList);
    ListView VehicleListView = (ListView) findViewById(R.id.VehicleList);
    ListView PlotListView = (ListView) findViewById(R.id.PlotList);
    switch (v.getId()) {
        case R.id.Select_Driver:
            this.ResetButtonColours();
            Driver_Btn.setBackgroundColor(Color.GREEN);
            DriverListView.setVisibility(View.VISIBLE);
            break;
        case R.id.Select_Vehicle:
            this.ResetButtonColours();
            Vehicle_Btn.setBackgroundColor(Color.GREEN);
            VehicleListView.setVisibility(View.VISIBLE);
            break;
        case R.id.Select_Plot:
            this.ResetButtonColours();
            Plot_Btn.setBackgroundColor(Color.GREEN);
            PlotListView.setVisibility(View.VISIBLE);
            break;
        case R.id.Signin_Btn:

            if (DriverID == 0) {
                Toast.makeText(getApplicationContext(), "You haven't selected a Driver!", Toast.LENGTH_LONG).show();
            } else if (VehicleID == 0) {
                Toast.makeText(getApplicationContext(), "You haven't selected a Vehicle!", Toast.LENGTH_LONG).show();
            } else if (PlotID == 0) {
                Toast.makeText(getApplicationContext(), "You haven't selected a Plot!", Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(getApplicationContext(), "Just a minute!", Toast.LENGTH_LONG).show();
                myIntent = new Intent(this, Dashboard.class);
                //myIntent.putExtra("key", value); //Optional parameters
                startActivity(myIntent);

            }

            break;
    }

}

public class JSONAsyncTask extends AsyncTask<String, Void, Boolean> {
    ProgressDialog dialog;

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        dialog = new ProgressDialog(Login.this);
        dialog.setMessage("Loading, Please Wait");
        dialog.setTitle("Connecting to Server");
        dialog.show();
        dialog.setCancelable(false);
    }

    @Override
    protected Boolean doInBackground(String... urls) {
        try {
            HttpGet HttpPost = new HttpGet(urls[0]);
            HttpClient HttpClient = new DefaultHttpClient();
            HttpResponse Response = HttpClient.execute(HttpPost);
            int Status = Response.getStatusLine().getStatusCode();
            //if (Status == 200) {
            HttpEntity Entity = Response.getEntity();
            String Data = EntityUtils.toString(Entity);
            JSONObject Object = new JSONObject(Data);
            JSONArray DriverArray = Object.getJSONArray("drivers");
            for (int i = 0; i < DriverArray.length(); i++) {
                JSONObject Current = DriverArray.getJSONObject(i);
                Driver Driver = new Driver();
                Driver.setID(Current.getInt("id"));
                Driver.setName(Current.getString("name"));
                DriverArrayList.add(Driver);
            }
            JSONArray VehicleArray = Object.getJSONArray("vehicles");
            for (int i = 0; i < VehicleArray.length(); i++) {
                JSONObject Current = VehicleArray.getJSONObject(i);
                Vehicle Vehicle = new Vehicle();
                Vehicle.setID(Current.getInt("id"));
                Vehicle.setName(Current.getString("make") + ' ' + Current.getString("model"));
                Vehicle.setReg("(" + Current.getString("reg") + ")");
                VehicleArrayList.add(Vehicle);
            }
            JSONArray PlotArray = Object.getJSONArray("plots");
            for (int i = 0; i < PlotArray.length(); i++) {
                JSONObject Current = PlotArray.getJSONObject(i);
                Plot Plot = new Plot();
                Plot.setID(Current.getInt("id"));
                Plot.setName(Current.getString("name"));
                PlotArrayList.add(Plot);
            }

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

        return false;
    }

    protected void onPostExecute(Boolean result) {
        dialog.cancel();
        Dadapter.notifyDataSetChanged();
        if (result == false) {
            Toast.makeText(getApplicationContext(), "Unable to Fetch Content from Server", Toast.LENGTH_LONG).show();
        }
    }
}

}

1 个答案:

答案 0 :(得分:3)

您是否已将新活动添加到清单文件中?

添加此

<activity
    android:name=".Dashboard"
    android:label="Dashboard" />
相关问题