首先关闭我是一个Android开发新手,所以我不是100%肯定我在做什么。我有一个注销按钮,但我已经编码的其他按钮(扫描按钮)不再工作,我确实在我输入注销按钮的代码之前工作了。在log cat中,当我按下扫描按钮时,根本没有出现错误,这显然表明它根本没有被调用,我不确定是否出错了。
import library.UserFunctions;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;
public class menuActivity extends Activity implements OnClickListener
{
private Button scan;
private TextView contentTxt;
UserFunctions userFunctions;
Button btnLogout;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.menu);
scan = (Button)findViewById(R.id.btnbarcode);
contentTxt = (TextView)findViewById(R.id.manText);
scan.setOnClickListener(this);
// Check login status in database
userFunctions = new UserFunctions();
if(userFunctions.isUserLoggedIn(getApplicationContext()))
{
// user already logged in show menu
setContentView(R.layout.menu);
btnLogout = (Button)findViewById(R.id.btnLogout);
btnLogout.setOnClickListener(new View.OnClickListener()
{
public void onClick(View arg0)
{
// TODO Auto-generated method stub
userFunctions.logoutUser(getApplicationContext());
Intent login = new Intent(getApplicationContext(), LoginActivity.class);
login.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(login);
// Closing menu screen
finish();
}
});
}else{
// user is not logged in show login screen
Intent login = new Intent(getApplicationContext(), LoginActivity.class);
login.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(login);
// Closing the menu screen
finish();
}
}
@Override
public void onClick(View v)
{
if(v.getId()==R.id.btnbarcode)
{
IntentIntegrator scanIntegrator = new IntentIntegrator(this);
scanIntegrator.initiateScan();
}
}
public void onActivityResult(int requestCode, int resultCode, Intent intent)
{
//retrieve scan result
IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
if (scanningResult != null)
{
//we have a result
String scanContent = scanningResult.getContents();
contentTxt.setText(scanContent);
}
else
{
Toast toast = Toast.makeText(getApplicationContext(),
"No scan data received!", Toast.LENGTH_SHORT);
toast.show();
}
}
}
谢谢民众
答案 0 :(得分:0)
这是处理按钮点击的简单方法:
假设我有一个活动,这里是活动使用
的布局的xml文件<RelativeLayout ... >
<Button
android:id="@+id/btn_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:onClick="action_Clicked"
android:text="Login" />
</RelativeLayout>
注意我是如何使用android:onClick="action_Clicked"
这为按钮提供了一个动作监听器,然后我们可以通过执行以下操作来访问我们的类
public void action_Clicked(View view){
switch(view.getId()){
case R.id.btn_login:
doStuff();
break;
}
}
你绝对可以在你的课程中添加点击听众,但这是我首选的方法。
答案 1 :(得分:0)
从if if条件中删除setContentView。
然后,将您的菜单布局放在主布局中,让它填满整个屏幕。将其可见性设置为VIEW_GONE。
不要调用setContentView,而是将该菜单的可见性设置为可见。