Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.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 在listitem click中使用文本到语音不起作用,myactivity在Tabactivity中_Java_Android_Text To Speech - Fatal编程技术网

Java 在listitem click中使用文本到语音不起作用,myactivity在Tabactivity中

Java 在listitem click中使用文本到语音不起作用,myactivity在Tabactivity中,java,android,text-to-speech,Java,Android,Text To Speech,我有一个动态列表视图,当单击列表项时,该字符串数组已转换为文本到语音函数,我将该字符串数组存储在字符串中,然后仅转换为文本到语音 这里我包括了我的代码 public class TTSList extends ListActivity implements TextToSpeech.OnInitListener { private static final int ACTIVITY_CREATE=0; private static final int ACTIVITY_EDIT=

我有一个动态列表视图,当单击列表项时,该字符串数组已转换为文本到语音函数,我将该字符串数组存储在字符串中,然后仅转换为文本到语音

这里我包括了我的代码

public class TTSList extends ListActivity implements TextToSpeech.OnInitListener {
    private static final int ACTIVITY_CREATE=0;
    private static final int ACTIVITY_EDIT=1;

    private GinfyDbAdapter mDbHelper;
    private SimpleCursorAdapter dataAdapter;
    ListView lv;
    public Button btnadd1;
    private TextToSpeech tts;
    String typed1;
    public String praystring;
    public TextView txtText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tts_list);

        lv =(ListView)findViewById(R.id.list);
          mDbHelper = new GinfyDbAdapter(this);
          btnadd1 = (Button)findViewById(R.id.btnadd);
          btnadd1.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {

                    createProject();


                }

            });

            mDbHelper.open();
            fillData();
            registerForContextMenu(getListView());

    }

    @SuppressLint("NewApi")
    @SuppressWarnings("deprecation")
    private void fillData() {
        mDbHelper.open();   
        Cursor projectsCursor = mDbHelper.fetchAllProjects1();
        //startManagingCursor(projectsCursor);

        // Create an array to specify the fields we want to display in the list (only TITLE)
        String[] from = new String[]{GinfyDbAdapter.CATEGORY_COLUMN_PRAYERNAME,GinfyDbAdapter.CATEGORY_COLUMN_WDATE};

        // and an array of the fields we want to bind those fields to (in this case just text1)
        int[] to = new int[]{R.id.text1,R.id.date};


         dataAdapter  = new SimpleCursorAdapter(
          this, R.layout.activity_row2, 
          projectsCursor, 
          from, 
          to,
          0);
         setListAdapter(dataAdapter);

        EditText myFilter = (EditText) findViewById(R.id.myFilter);
          myFilter.addTextChangedListener(new TextWatcher() {

           public void afterTextChanged(Editable s) {
           }

           public void beforeTextChanged(CharSequence s, int start, 
             int count, int after) {
           }

           public void onTextChanged(CharSequence s, int start, 
             int before, int count) {
               dataAdapter.getFilter().filter(s.toString());
           }
          });

          dataAdapter.setFilterQueryProvider(new FilterQueryProvider() {
                 public Cursor runQuery(CharSequence constraint) {
                     return mDbHelper.fetchProjectByName(constraint.toString());
                 }
             });

            tts = new TextToSpeech(this, this);



    }



    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        super.onCreateOptionsMenu(menu);
         MenuInflater mi = getMenuInflater();
            mi.inflate(R.menu.activity_main, menu); 
        return true;
    }
     @Override
        public boolean onMenuItemSelected(int featureId, MenuItem item) {
            switch(item.getItemId()) {
            case R.id.menu_insert: 
                createProject();
                return true; 

            }

            return super.onMenuItemSelected(featureId, item);
        }
     @Override
        public void onCreateContextMenu(ContextMenu menu, View v,
                ContextMenuInfo menuInfo) {
            super.onCreateContextMenu(menu, v, menuInfo);
            MenuInflater mi = getMenuInflater(); 
            mi.inflate(R.menu.activity_menu_long, menu); 
        }
     @Override
        public boolean onContextItemSelected(MenuItem item) {
            switch(item.getItemId()) {
            case R.id.menu_delete:
                AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
                mDbHelper.deleteProject1(info.id);
                fillData();
                return true;
            case R.id.menu_edit:
                AdapterContextMenuInfo info1 = (AdapterContextMenuInfo) item.getMenuInfo();             
                Intent i = new Intent(this, TTSprayer.class);
                i.putExtra(GinfyDbAdapter.CATEGORY_COLUMN_ID1, info1.id);
                startActivityForResult(i, ACTIVITY_EDIT);               
                return true;
            }
            return super.onContextItemSelected(item);
        }
     private void createProject() {
            Intent i = new Intent(this, TTSprayer.class);
            startActivityForResult(i, ACTIVITY_CREATE);   
        }


        @Override
        protected void onListItemClick(ListView l, View v, int position, long id) {
            super.onListItemClick(l, v, position, id);



            Cursor Release = mDbHelper.fetchProject1(id);        
            String Releasename = Release.getString(Release.getColumnIndexOrThrow(GinfyDbAdapter.CATEGORY_COLUMN_GODNAME));
            String Releasename1 = Release.getString(Release.getColumnIndexOrThrow(GinfyDbAdapter.CATEGORY_COLUMN_PRAYFOR));
            String Releasename2 = Release.getString(Release.getColumnIndexOrThrow(GinfyDbAdapter.CATEGORY_COLUMN_PRAYEEENAME));


            List<String> godname = new ArrayList<String>(Arrays.asList(Releasename.split(",")));
            List<String> prayfor = new ArrayList<String>(Arrays.asList(Releasename1.split(",")));
            List<String> people = new ArrayList<String>(Arrays.asList(Releasename2.split(",")));



            for (String temp : godname) {
                 for (String temp1 : prayfor) {
                     for (String temp2 : people) {
                         praystring = temp +"  " + temp1 +"   "+ temp2 + " ";

                    }
                }
            }


            typed1 = praystring;

            speakOut();


        }

        @Override
        public void onDestroy() {
            // Don't forget to shutdown tts!
            if (tts != null) {
                tts.stop();
                tts.shutdown();
            }
            super.onDestroy();
        }

        public void onInit(int status) {

            if (status == TextToSpeech.SUCCESS) {

                int result = tts.setLanguage(Locale.US);

                if (result == TextToSpeech.LANG_MISSING_DATA
                        || result == TextToSpeech.LANG_NOT_SUPPORTED) {
                    Log.e("TTS", "This Language is not supported");
                } else {
                    //btnaudioprayer.setEnabled(true);
                    speakOut();
                }

            } else {
                Log.e("TTS", "Initilization Failed!");
            }

        }


         private void speakOut() {

                tts.speak(typed1, TextToSpeech.QUEUE_FLUSH, null);
            }




        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
            super.onActivityResult(requestCode, resultCode, intent);
            fillData();
        }
公共类TTSList扩展ListActivity实现TextToSpeech.OnInitListener{
私有静态最终整数活动_CREATE=0;
私有静态最终整数活动_EDIT=1;
私人轧花机;
私有SimpleCursorAdapter数据适配器;
ListView lv;
公共按钮btnadd1;
私密文本语音tts;
字符串类型1;
公共字符串praystring;
公共文本视图txtText;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u tts\u列表);
lv=(ListView)findViewById(R.id.list);
mDbHelper=新轧棉机适配器(本);
btnadd1=(按钮)findViewById(R.id.btnadd);
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
createProject();
}
});
mDbHelper.open();
fillData();
registerForContextMenu(getListView());
}
@SuppressLint(“新API”)
@抑制警告(“弃用”)
私有void fillData(){
mDbHelper.open();
游标projectsCursor=mDbHelper.fetchAllProjects1();
//开始管理光标(projectsCursor);
//创建一个数组以指定要在列表中显示的字段(仅标题)
String[]from=新字符串[]{ginfydadapter.CATEGORY_COLUMN_PRAYERNAME,ginfydadapter.CATEGORY_COLUMN_WDATE};
//以及要将这些字段绑定到的字段数组(在本例中仅为text1)
int[]to=newint[]{R.id.text1,R.id.date};
dataAdapter=新的SimpleCorsorAdapter(
这个,R.layout.activity_row2,
projectsCursor,
从…起
到
0);
setListAdapter(数据适配器);
EditText myFilter=(EditText)findViewById(R.id.myFilter);
myFilter.addTextChangedListener(新的TextWatcher(){
公共无效后文本已更改(可编辑){
}
更改前的公共无效(字符序列、整数开始、,
整数计数,整数后){
}
public void onTextChanged(字符序列,int start,
前整数,整数计数){
dataAdapter.getFilter().filter(s.toString());
}
});
setFilterQueryProvider(新的FilterQueryProvider(){
公共游标运行查询(CharSequence约束){
返回mDbHelper.fetchProjectByName(constraint.toString());
}
});
tts=新的TextToSpeech(这个,这个);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
super.onCreateOptions菜单(菜单);
MenuInflater mi=getMenuInflater();
mi.充气(右菜单活动主菜单);
返回true;
}
@凌驾
公共布尔值onMenuItemSelected(int-featureId,MenuItem项){
开关(item.getItemId()){
案例R.id.菜单\插入:
createProject();
返回true;
}
返回super.onMenuItemSelected(featureId,item);
}
@凌驾
public void onCreateContextMenu(ContextMenu,视图v,
上下文菜单信息(menuInfo){
super.onCreateContextMenu(menu,v,menuInfo);
MenuInflater mi=getMenuInflater();
mi.充气(右菜单、活动菜单、长菜单);
}
@凌驾
公共布尔值onContextItemSelected(MenuItem项){
开关(item.getItemId()){
案例R.id.菜单\u删除:
AdapterContextMenuInfo信息=(AdapterContextMenuInfo)项。getMenuInfo();
mDbHelper.deleteProject1(信息id);
fillData();
返回true;
案例R.id.菜单\编辑:
AdapterContextMenuInfo信息1=(AdapterContextMenuInfo)项。getMenuInfo();
意向i=新意向(此,TTSprayer.class);
i、 putExtra(ginfydAdapter.CATEGORY_COLUMN_ID1,info1.id);
startActivityForResult(一,活动编辑);
返回true;
}
返回super.onContextItemSelected(项目);
}
私有项目(){
意向i=新意向(此,TTSprayer.class);
startActivityForResult(i,活动\创建);
}
@凌驾
受保护的void onListItemClick(列表视图l、视图v、整数位置、长id){
super.onListItemClick(左、右、位置、id);
游标释放=mDbHelper.fetchProject1(id);
String Releasename=Release.getString(Release.getColumnIndexOrThrow(ginfydAdapter.CATEGORY_COLUMN_GODNAME));
String Releasename1=Release.getString(Release.getColumnIndexOrThrow(ginfydAdapter.CATEGORY_COLUMN_PRAYFOR));
String Releasename2=Release.getString(Release.getColumnIndexOrThrow(ginfydAdapter.CATEGORY_COLUMN_pageName));
List godname=newarraylist(Arrays.asList(Releasename.split(“,”));
List prayfor=newarraylist(Arrays.asList(Releasename1.split(“,”));
List people=newarraylist(Arrays.asList(Releasename2.split(“,”));
用于(字符串温度:godname){
for(字符串temp1:prayfor){
for(字符串temp2:people){
praystring=temp+“”+temp1+“”+temp2+“”;
}
 tts = new TextToSpeech(this, this);
   tts = new TextToSpeech(getParent(),TTSList.this);
    @Override
    public void onInit(int status)