嘿,我刚接触编码/ java / android,请放轻松我
我已将if else语句添加到登录按钮,
if(username = admin && password = admin){
then go to admin activity
}else if(username = manager && password = manager){
then go to manager activity
}else if(username = user && password = user){
then go to user activity
}else{
display text wrong password
}
在管理员活动中,它会调用按钮add_user ,在管理器活动中,它调用按钮order_items 在用户活动中,它调用按钮sales_report
所有按钮都在activity_users_area.xml中定义
问题/问题
问题是当我在app中以admin身份登录时,它将显示布局文件activity_users_area.xml中显示的所有按钮 如果我以管理员或用户身份登录,也是如此。
我希望它只显示在各自的Java类中调用的whats,我该如何实现这个
Iam对管理员管理员和用户使用相同的布局,因为,将来我可能会添加对于管理员用户和经理或管理员和管理员等常见的按钮...
请不要建议我为管理员,用户和经理创建数据库 寻找一个没有他们的解决方案
这就是我的布局 activity_users_area.xml
<?xml version="1.0" encoding="utf-8"?>
<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".AdminAreaActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Add User"
android:id="@+id/bAddUser"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Remove User"
android:id="@+id/bRemoveUser"
android:layout_below="@+id/bAddUser"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Change Stock"
android:id="@+id/bChangeStock"
android:layout_below="@+id/bRemoveUser"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sales Report"
android:id="@+id/bSalesReport"
android:layout_below="@+id/bChangeStock"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Change Customer"
android:id="@+id/bChangeCustomer"
android:layout_below="@+id/bChangeStock"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Collection Report"
android:id="@+id/bCollectionReport"
android:layout_below="@+id/bSalesReport"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Stock Report"
android:id="@+id/bStockReport"
android:layout_below="@+id/bCollectionReport"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pay Collect"
android:id="@+id/bPayCollect"
android:layout_below="@+id/bStockReport"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Item Sales"
android:id="@+id/bItemSales"
android:layout_below="@+id/bPayCollect"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Loan Collect"
android:id="@+id/bLoanCollect"
android:layout_below="@+id/bItemSales"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Order Items"
android:id="@+id/bOrderItems"
android:layout_below="@+id/bLoanCollect"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true" />
</RelativeLayout>
这是我的 LoginActivity.java
package online.klok.mobpos;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class LoginActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
final EditText etUsername = (EditText) findViewById(R.id.etUserName);
final EditText etPassword = (EditText) findViewById(R.id.etPassword);
final Button bLogin = (Button) findViewById(R.id.bLogin);
final TextView registerLink = (TextView) findViewById(R.id.tvRegisterHere);
registerLink.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent registerIntent = new Intent(LoginActivity.this, RegisterActivity.class);
LoginActivity.this.startActivity(registerIntent);
}
});
bLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText username = (EditText) findViewById(R.id.etUserName);
EditText password = (EditText) findViewById(R.id.etPassword);
if (username.getText().toString().equals("admin") && password.getText().toString().equals("admin")) {
Intent adminIntent = new Intent(LoginActivity.this, AdminAreaActivity.class);
LoginActivity.this.startActivity(adminIntent);
} else if(username.getText().toString().equals("manager") && password.getText().toString().equals("manager")) {
Intent managerIntent = new Intent(LoginActivity.this, ManagerAreaActivity.class);
LoginActivity.this.startActivity(managerIntent);
}else if(username.getText().toString().equals("user") && password.getText().toString().equals("user")) {
Intent userIntent = new Intent(LoginActivity.this, UserAreaActivity.class);
LoginActivity.this.startActivity(userIntent);
}else {
//wrong password
Toast.makeText(getApplicationContext(), "Wrong Credentials", Toast.LENGTH_SHORT).show();
}
}
});
}
}
这是我的 AdminAreaActivity.java
package online.klok.mobpos;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class AdminAreaActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_area);
Button bAddUser = (Button) findViewById(R.id.bAddUser);
bAddUser.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
}
这是我的 ManagerAreaActivity.java
package online.klok.mobpos;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
/**
* Created by klok on 1/7/16.
*/
public class ManagerAreaActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_area);
final Button bOrderItems = (Button) findViewById(R.id.bOrderItems);
bOrderItems.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
}
这是我的 UserAreaActivity.java
package online.klok.mobpos;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
/**
* Created by klok on 1/7/16.
*/
public class UserAreaActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_area);
final Button bSalesReport = (Button) findViewById(R.id.bSalesReport);
bSalesReport.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
}
}
答案 0 :(得分:0)
您可能想要更改按钮的可见性:
if(adminActivity){
buttonYouDontWant.setVisibility(View.GONE);
}
GONE表示该按钮不可见,不会占用布局上的空间。 使用
View.VISIBLE
将其设置为可见。
话虽如此,您可能希望以编程方式创建自定义视图,这将有助于您轻松处理AdminManager和User的常用部分。
答案 1 :(得分:0)
我认为按钮可见性会起作用。您可以首先使所有视图不可见,然后在布局方面,您可以根据需要使它们可见。 使用View.VISIBLE
答案 2 :(得分:0)
在您的activity_users_area.xml中,将此行添加到所有按钮
android:visibility="gone"
在AdminAreaActivity.java中,在onCreate()方法中添加这些行。
setContentView(R.layout.activity_user_area);
final Button badduser = (Button) findViewById(R.id.bAddUser);
badduser.setVisibility(View.Visible);
现在只有add_user按钮会显示在您的AdminAreaActivity中。 同样,在所有其他活动中增加3行以上。