目前我有两节课。主类和返回LinearLayout的linearLayout类
layout类有一个按钮和一个edittext视图,它将把所有这些都捆绑在一起,并将视图返回给主类以使用它。
在主类中将有一个ArrayList,它将在这里动态创建,最后将它们显示出来。
问题:我想在每个按钮上使用QR扫描仪。我将上下文传递给LinearLayout类,以便在单击按钮时创建组件和扫描器。单击布局列表中创建的每个按钮并自动回调到主类onActivityResult方法。
但是,我想要为所单击的linearLayout更新文本视图。
我不知道如何获取在回调之后点击了哪个按钮(LinearLayout)的位置。
我有一种感觉,这与回调/接口有关。但我不知道如何充分利用它
LinearLayout的代码为SearchBar:
EditText et;
Button bt;
LinearLayout ll;
IntentIntegrator _scanner;
public SearchBar(Context c){
et=new EditText(c);
bt=new Button(c);
//et.setHint("WayPoint");
bt.setText("Scan");
_scanner = new IntentIntegrator((Activity) c);
ll=new LinearLayout(c);
setLinearLayout();
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
_scanner.initiateScan();
}
});
et.setLayoutParams(flowLeft());
bt.setLayoutParams(flowRight());
ll.addView(et);
ll.addView(bt);
}
public LinearLayout getSearchBar(){
return ll;
}主类代码简介:
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.activity_search);
//_scanner = new IntentIntegrator(this);
//button_scan = (Button) findViewById(R.id.button_scan);
ScrollView sv = new ScrollView(this);
ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
l2=new LinearLayout(this);
l2.setOrientation(LinearLayout.VERTICAL);
ll.addView(l2);
//testing for searchBar class
SearchBar origin= new SearchBar(this);
origin.setHint("Origin");
origin.setText("me");
sbs.add(origin);
ll.addView(sbs.get(0).getSearchBar());
destin= new SearchBar(this);
destin.setText("destin");
destin.setHint("destination");
destinLayout=destin.getSearchBar();
sbs.add(destin);
ll.addView(destinLayout);
sv.addView(ll);
this.setContentView(sv); }
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (requestCode == IntentIntegrator.REQUEST_CODE) { // from Barcode Scanner
if (resultCode == RESULT_OK)
{
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if (scanResult == null){
//Alert.ShowAlert(this, "Scanning", "Scan Failed");
}else {
String scanned = scanResult.getContents();
//How to get position of which button was fired
}
}
}
}发布于 2014-05-02 07:13:38
函数public void onClick(View v)具有View参数。你可以用它做任何你想做的事情,包括getId()或getParent()。也许您想调用v.getParent()并将其存储在一个类变量中,以便可以在onActivityResult中访问它
https://stackoverflow.com/questions/23418195
复制相似问题