首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android接口回调问题

问android接口回调问题
EN

Stack Overflow用户
提问于 2014-05-02 07:07:19
回答 1查看 156关注 0票数 0

目前我有两节课。主类和返回LinearLayout的linearLayout类

layout类有一个按钮和一个edittext视图,它将把所有这些都捆绑在一起,并将视图返回给主类以使用它。

在主类中将有一个ArrayList,它将在这里动态创建,最后将它们显示出来。

问题:我想在每个按钮上使用QR扫描仪。我将上下文传递给LinearLayout类,以便在单击按钮时创建组件和扫描器。单击布局列表中创建的每个按钮并自动回调到主类onActivityResult方法。

但是,我想要为所单击的linearLayout更新文本视图。

我不知道如何获取在回调之后点击了哪个按钮(LinearLayout)的位置。

我有一种感觉,这与回调/接口有关。但我不知道如何充分利用它

LinearLayout的代码为SearchBar:

代码语言:javascript
复制
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;
}

主类代码简介:

代码语言:javascript
复制
@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);       

}

代码语言:javascript
复制
@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

            }
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2014-05-02 07:13:38

函数public void onClick(View v)具有View参数。你可以用它做任何你想做的事情,包括getId()或getParent()。也许您想调用v.getParent()并将其存储在一个类变量中,以便可以在onActivityResult中访问它

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23418195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档