2016-11-28 2 views
0

i Problemen mit mir versuche, 2 Tasten in meinen Listview hinzufügen, ich bin mit einem Bild zu, was ich habe und was ich willhinzufügen 2 Taste Listview mit benutzerdefinierten Adapter

What i want

i Also, Ich möchte nur die 2 Tasten dort hinzufügen, aber ich habe versucht, es mit benutzerdefinierten Adaptern zu tun, aber ich kann es immer noch nicht tun, wenn jemand mir helfen könnte, würde ich es wirklich schätzen.

Meine Dateien so weit:

activity_vendor_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_vendedor_main" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:background="@color/colorPrimary" 
    android:layout_height="match_parent" 
    android:weightSum="1"> 


    <ImageView 
     android:src="@drawable/logo" 
     android:layout_width="209dp" 
     android:layout_height="106dp" 
     android:layout_marginBottom="20dp" 
     android:layout_gravity="center_horizontal" /> 

    /> 
    <ImageView 
     android:src="@drawable/orderid1" 
     android:layout_width="134dp" 
     android:layout_height="34dp" 
     android:layout_gravity="center_horizontal" 
     /> 

    <SearchView 
     android:layout_width="match_parent" 
     android:layout_height="30dp" 
     android:id="@+id/seacrhBar" 
     android:textColor="@color/colorVendor" 
     android:layout_marginTop="25dp" 
     android:background="@drawable/vendor_bars_background"/> 


    <android.support.v7.widget.AppCompatButton 
     android:text="AGREGAR ORDEN" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:layout_marginTop="5dp" 
     android:layout_marginBottom="8dp" 
     android:textStyle="bold" 
     android:textColor="@color/colorVendor" 
     android:background="@drawable/single_button" 
     android:id="@+id/add_order1" 
     android:onClick="EVENTO" /> 


    <ListView 
     android:layout_width="wrap_content" 
     android:layout_height="190dp" 
     android:id="@+id/tablaPedidos" 
     android:choiceMode="singleChoice" 
     android:layout_above="@+id/editText2" 
     android:background="@drawable/vendor_bars_background" 
     android:layout_weight="0.13" /> 

    <android.support.v7.widget.AppCompatButton 
     android:text="CERRAR SESIÓN" 
     android:layout_width="120sp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:layout_marginTop="10dp" 
     android:layout_marginBottom="135dp" 
     android:textStyle="bold" 
     android:textColor="@color/colorVendor" 
     android:background="@drawable/button_login_form" 
     android:id="@+id/signOut2_order_form" 
     android:onClick="logout" /> 


</LinearLayout> 

MainActivity.java

public class LoginActivity extends AppCompatActivity { 

    GlobalClass appContext; 
    @BindView(R.id.input_username) 
    EditText _usernameText; 
    @BindView(R.id.input_password) 
    EditText _passwordText; 
    @BindView(R.id.btn_login) 
    Button _loginButton; 
    ProgressDialog progressDialog; 
    //Invocación de servicio para acceso al API 
    UsersHandler client = ServiceGenerator.createService(UsersHandler.class); 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 


     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_login); 



     if (android.os.Build.VERSION.SDK_INT > 9) { 
      StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
      StrictMode.setThreadPolicy(policy); 
     } 
     ButterKnife.bind(this); 
     appContext = (GlobalClass)getApplicationContext(); 
     _loginButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       login(); 
      } 
     }); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.menu_main, menu); 
     return super.onCreateOptionsMenu(menu); 

    } 




    @Override 
    public void onBackPressed() { 
     moveTaskToBack(false); 
    } 

    public void onLoginSuccess() { 
     _loginButton.setEnabled(true); 
     finish(); 
    } 

    public void onLoginFailed(String message) { 
     Toast.makeText(getBaseContext(), message, Toast.LENGTH_LONG).show(); 
     _loginButton.setEnabled(true); 
    } 

    public void login() { 
     if (!validate()) { 
      // onLoginFailed("Login failed"); 
      return; 
     } 

     _loginButton.setEnabled(false); 

     progressDialog = new ProgressDialog(LoginActivity.this,R.style.AppTheme_Dark_Dialog); 
     progressDialog.setIndeterminate(true); 
     progressDialog.setMessage("Autenticando..."); 
     progressDialog.show(); 

     new android.os.Handler().postDelayed(
       new Runnable() { 
        public void run() { 
         onLoginSuccess(); 
         //progressDialog.dismiss(); 
        } 
       }, 3000); 
     progressDialog.dismiss(); 
     String userType = appContext.getSessionUserType(); 
     loadUserView(userType); 
    } 

    public boolean validate() { 
     boolean valid = true; 
     String username = _usernameText.getText().toString().trim(); 
     String password = _passwordText.getText().toString(); 

     //if (email.isEmpty() || !android.util.Patterns.EMAIL_ADDRESS.matcher(username).matches()) { 
     if (username.isEmpty()) { 
      _usernameText.setError("Ingrese un usuario válido."); 
      valid = false; 
     } else { 
      _usernameText.setError(null); 
     } 

     if (password.isEmpty() || password.length() < 4) { 
      _passwordText.setError("No menos de 4 caracteres alfanuméricos"); 
      valid = false; 
     } else { 
      _passwordText.setError(null); 
     } 

     if (valid) { 
      valid = validateApi(1, username, password); 
     } 

     return valid; 
    } 

    public boolean validateApi(int i, String username, String password) { 
     appContext.setSessionToken("1"); 
     appContext.setSessionUserType(Constants.COURIER); 
     if (username.equals("v")) 
      appContext.setSessionUserType(Constants.VENDOR); 
     appContext.setSessionUsername("tester"); 
     appContext.setSessionCompany("test"); 
     appContext.saveSessionAttributes(); 
     return true; 
    } 

    public boolean validateApi(String username, String password) { 
     boolean valid = false; 

     //Creación de request 
     UserLoginRequest requestObj = new UserLoginRequest(username, password); 
     //Declaración de request 
     Call<ResponseBody> call = client.userLogin(requestObj); 
     JSONObject json = null; 
     try { 
      ResponseBody responseBody = call.execute().body(); 
      json = UtilsController.getJsonResponse(responseBody); 
      boolean success = UtilsController.isJsonValid(json); 
      String error = UtilsController.extractMessage(json); 

      if (success) { 
       User response = (User) UtilsController.extractDataJson(json, User.class); 
       appContext.setSessionToken(response.getToken()); 
       appContext.setSessionUserType(response.getUserType()); 
       appContext.setSessionUsername(response.getUsername()); 
       appContext.setSessionCompany(response.getCompanyName()); 
       appContext.saveSessionAttributes(); 
       valid = true; 
      } else { 
       onLoginFailed(error); 
       return false; 
      } 

     } catch (IOException e) { 
      //Error en lectura de respuesta de servidor 
      onLoginFailed("Error interno. Intente más tarde"); 
     } catch (JSONException e) { 
      //Error en campos de respuesta 
      onLoginFailed("Error interno. Intente más tarde"); 
     } catch (Exception e) { 
      //Error general 
      if (json == null) { 
       onLoginFailed("Error interno. Intente más tarde"); 
      } 
      onLoginFailed("Login failed"); 
     } 
     return valid; 
    } 

    public void loadUserView(String userType) { 
     if (userType != null && Constants.VENDOR.equals(userType)) { 
      Intent userView = new Intent(this, VendorMain.class); 
      startActivity(userView); 
     } else if (Constants.COURIER.equals(userType)) { 
      Intent userView = new Intent(this, CourierMain.class); 
      startActivity(userView); 
     } 
    } 

} 

row_item.xml (Bild unten)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:padding="10dp"> 


    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true"> 

    </LinearLayout> 

    <Button 
     android:text="EDITAR" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:id="@+id/cancel_btn" /> 

    <Button 
     android:text="Cancelar" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/edit_btn" 
     android:layout_alignParentTop="true" 
     android:layout_toLeftOf="@+id/cancel_btn" 
     android:layout_toStartOf="@+id/cancel_btn" 
     android:layout_marginRight="7dp" 
     android:layout_marginEnd="7dp" /> 

    <TextView 
     android:id="@+id/orden_title_text" 
     android:textStyle="bold" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="ORDEN #" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:textColor="@android:color/black" 
     android:layout_alignBaseline="@+id/edit_btn" 
     android:layout_alignBottom="@+id/edit_btn" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" /> 

    <TextView 
     android:id="@+id/textbox1" 
     android:layout_width="50dp" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="7dp" 
     android:text=" " 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:textColor="@android:color/black" 
     android:layout_alignBaseline="@+id/orden_title_text" 
     android:layout_alignBottom="@+id/orden_title_text" 
     android:layout_toRightOf="@+id/orden_title_text" 
     android:layout_marginStart="7dp" /> 

</RelativeLayout> 

row_item.xml "What i have so far"

Wenn weitere Dateien benötigt werden, um mir zu helfen, lass es mich wissen und ich werde es hochladen.

Vielen Dank, Jungs.

Antwort

0

eine Klasse wie

public class TestAdapter extends BaseAdapter { 

    Context context; 

    public TestAdapter(Context context) 
    { 
     this.context=context; 
    } 

    //count of number of items in listview may be depending on the array ua passing....here i am keeping 5 it may be according to you! 
    int count=5; 

    @Override 
    public int getCount() { 
     return 5; 
    } 

    @Override 
    public Object getItem(int position) { 
     return null; 
    } 

    @Override 
    public long getItemId(int position) { 
     return 0; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 

     convertView= LayoutInflater.from(context).inflate(R.layout.row_item,parent,false); 

     TextView ordentitle=(TextView)convertView.findViewById(R.id.orden_title_text); 

     TextView textbox1=(TextView)convertView.findViewById(R.id.textbox1); 


     ordentitle.setText("Whatever yout text is"); 

     textbox1.setText("whatever your text is"); 

     Button editar=(Button)convertView.findViewById(R.id.edit_btn); 

     Button cancel=(Button)convertView.findViewById(R.id.cancel_btn); 


     editar.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       //funtionality of edit button 
      } 
     }); 

     cancel.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       //functionality of cancel button 
      } 
     }); 


     return convertView; 
    } 
} 

erstellen und dann diesen Adapter an Ihre Listenansicht in der Aktivität oder Fragment wie folgt festgelegt:

TestAdapter testAdapter=new TestAdapter(YourActivity.this) 

yourlistview.setAdapter(testAdapter); 

einen weiteren Zeiger:

SIE GAB EDIT TASTE id als cancel_btn und CANCEL BUTTON ID als edit_btn!

+0

Danke !!! Es klappt!!!! –

0

Sie könnten eine neue Klasse erstellen, die BaseAdapter erweitert, und in der getView-Methode, die Sie mit den Schaltflächen ausführen möchten. In der Aktivität mit dem listView verwenden Sie den setAdapter.

Verwandte Themen