Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java AlertDialog布局元素-如何访问它们?_Java_Android_Android Activity_Dialog - Fatal编程技术网

Java AlertDialog布局元素-如何访问它们?

Java AlertDialog布局元素-如何访问它们?,java,android,android-activity,dialog,Java,Android,Android Activity,Dialog,我一直在为Android应用程序开发GUI。当我突然被一项简单的任务弄得措手不及时,一切都很顺利: 我有一个活动。在里面,我有一个列表视图。我想做的是:单击ListView中的项时-打开包含有关此位置的更多信息的对话框。嗯,显示一个对话框有点容易,但问题是我不能更改f.e.标题。为什么?这是我的密码: public class SzukajActivity extends Activity { private ListView searchResultsListView; private Str

我一直在为Android应用程序开发GUI。当我突然被一项简单的任务弄得措手不及时,一切都很顺利: 我有一个活动。在里面,我有一个列表视图。我想做的是:单击ListView中的项时-打开包含有关此位置的更多信息的对话框。嗯,显示一个对话框有点容易,但问题是我不能更改f.e.标题。为什么?这是我的密码:

public class SzukajActivity extends Activity {
private ListView searchResultsListView;
private String DB[] = {"Blah", "Bleh", "Boing", "Quing", "Something"};
private ArrayList<String> searchResults = new ArrayList<String>();
private EditText searchNameEditText;
private ArrayAdapter<String> searchListViewAdapter;
private TextView prowadzacyName;
private AlertDialog prowadzacyDialog;
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    LayoutInflater searchFactory = LayoutInflater.from(this);
    final View searchView = searchFactory.inflate(R.layout.search, null);
    setContentView(searchView);

    // prowadzacySite Dialog
    LayoutInflater prowadzacySiteFactory = LayoutInflater.from(this);
    final View prowadzacyDialogView = prowadzacySiteFactory.inflate(R.layout.prowadzacy_site, null);
    prowadzacyName = (TextView) findViewById(R.id.prowadzacyname);
    //prowadzacyName.setText("a KUKU!");
    AlertDialog.Builder prowadzacyDialogBuilder = new AlertDialog.Builder(this);
    prowadzacyDialogBuilder.setTitle("Prowadzacy")
                      .setCancelable(false)
                      .setView(prowadzacyDialogView)
                      .setPositiveButton("Zapisz się", new DialogInterface.OnClickListener() {
                           public void onClick(DialogInterface dialog, int id) {
                                dialog.cancel();
                           }
                       })
                       .setNegativeButton("Zakoncz", new DialogInterface.OnClickListener() {
                           public void onClick(DialogInterface dialog, int id) {
                                dialog.cancel();
                           }
                       });
    prowadzacyDialog = prowadzacyDialogBuilder.create();

    searchResultsListView = (ListView) findViewById(R.id.searchKurczeBladeView);
    searchListViewAdapter = new ArrayAdapter<String>(this, R.layout.spotkanialistitem, searchResults);
    searchResultsListView.setAdapter(searchListViewAdapter);
    searchResultsListView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            prowadzacyName = (TextView) findViewById(R.id.prowadzacyname);
            if(prowadzacyName == null) Toast.makeText(SzukajActivity.this, "BOOOOM!", Toast.LENGTH_SHORT).show();
            //prowadzacyName.setText("A KUKU!");

            prowadzacyDialog.show();
        }
    });
    searchNameEditText = (EditText) findViewById(R.id.searchName);
    searchNameEditText.setOnKeyListener(new OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER))
            {
                searchResults.clear();
                for(int i = 0; i < 5; ++i)
                {
                    if(DB[i].contains(searchNameEditText.getText()))
                    {
                        searchResults.add(DB[i]);
                    }
                }
                if(searchResults.size() == 0)
                    Toast.makeText(SzukajActivity.this, "Nie znaleziono odpowiadających prowadzących", Toast.LENGTH_SHORT).show();
                searchListViewAdapter.notifyDataSetChanged();
                return true;
            }
            else
                return false;
        }
    });

}
}
公共类Szukajavity扩展活动{
私有ListView searchResultsListView;
私有字符串DB[]={“Blah”、“Bleh”、“Boing”、“Quing”、“Something”};
private ArrayList searchResults=新建ArrayList();
私有EditText searchNameEditText;
专用ArrayAdapter searchListViewAdapter;
私有文本视图prowadzacyName;
私有AlertDialog ProwadzacDialog;
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
LayoutInflater searchFactory=LayoutInflater.from(this);
最终视图searchView=searchFactory.inflate(R.layout.search,null);
setContentView(searchView);
//普罗旺西汀对话框
LayoutInflater prowadzacySiteFactory=LayoutInflater.from(this);
最终视图prowadzacyDialogView=prowadzacySiteFactory.inflate(R.layout.prowadzacy_站点,null);
prowadzacyName=(TextView)findViewById(R.id.prowadzacyName);
//prowadzacyName.setText(“一个KUKU!”);
AlertDialog.Builder prowadzacyDialogBuilder=新建AlertDialog.Builder(此);
prowadzacyDialogBuilder.setTitle(“Prowadzacy”)
.setCancelable(错误)
.setView(prowadzacyDialogView)
.setPositiveButton(“Zapisz się”,新的DialogInterface.OnClickListener(){
public void onClick(DialogInterface对话框,int-id){
dialog.cancel();
}
})
.setNegativeButton(“Zakoncz”,新的DialogInterface.OnClickListener(){
public void onClick(DialogInterface对话框,int-id){
dialog.cancel();
}
});
prowadzacyDialog=prowadzacyDialogBuilder.create();
searchResultsListView=(ListView)findViewById(R.id.searchKurczeBladeView);
searchListViewAdapter=new ArrayAdapter(这个,R.layout.spotkanalistItem,searchResults);
searchResultsListView.setAdapter(searchListViewAdapter);
searchResultsListView.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
prowadzacyName=(TextView)findViewById(R.id.prowadzacyName);
如果(prowadzacyName==null)Toast.makeText(SzukajActivity.this,“BOOOOM!”,Toast.LENGTH_SHORT.show();
//prowadzacyName.setText(“一个KUKU!”);
prowadzacyDialog.show();
}
});
searchNameEditText=(EditText)findViewById(R.id.searchName);
searchNameEditText.setOnKeyListener(新的OnKeyListener(){
@凌驾
公共布尔onKey(视图v、int keyCode、KeyEvent事件){
如果((event.getAction()==KeyEvent.ACTION\u DOWN)&&(keyCode==KeyEvent.keyCode\u ENTER))
{
searchResults.clear();
对于(int i=0;i<5;++i)
{
if(DB[i].contains(searchNameEditText.getText())
{
searchResults.add(DB[i]);
}
}
if(searchResults.size()==0)
Toast.makeText(szukajiono.this,“Nie znaleziono odpowidających prowadzących”,Toast.LENGTHąu SHORT.show();
searchListViewAdapter.notifyDataSetChanged();
返回true;
}
其他的
返回false;
}
});
}
}
直接的问题是,在onItemClick函数中,我想从对话框布局访问
prowadzacyName
,这是一个
TextView
。它将始终为空,因为我设置了
setContentView(searchView)
。我这样做是因为这是我活动的布局

有没有一种可能的方法来访问这些元素,或者更确切地说,有没有其他方法来获得我想要的?(我原以为对话是另一种活动,但听起来让我毛骨悚然——每一种可能的对话都是另一种活动?!:p)

试一试


照我所知,你曾经

    final View searchView = searchFactory.inflate(R.layout.search, null);
    setContentView(searchView);
在这种情况下,如果要访问子视图,请使用

  prowadzacyName = (TextView)searchView.findViewById(R.id.prowadzacyname);

我想这可能会解决你的问题。

据我所知,你曾经

    final View searchView = searchFactory.inflate(R.layout.search, null);
    setContentView(searchView);
在这种情况下,如果要访问子视图,请使用

  prowadzacyName = (TextView)searchView.findViewById(R.id.prowadzacyname);

我想这可能会解决你的问题。

哦,天哪,那太容易了:哦,非常感谢,很抱歉打扰你;)哦,我的上帝,这太简单了:哦,非常感谢你,抱歉打扰你;)